1. ボックスを中央に配置するいくつかの方法を記録します:
1.0、マージンの幅と高さを中央に固定;
2.0、負のマージンが中心
3.0、絶対位置決めとセンタリング
4.0、テーブルセルは中央に配置されます。
5.0、フレックス中心
6.0、変換は中央に配置されます。
7.0、幅と高さのセンタリングが不確実 (絶対位置決めパーセンテージ)
8.0、ボタンは中央に配置されています。
2. コードのデモ (HTML は同じデモを使用します):
html デモ:
<span style="color: #0000ff;"><</span><span style="color: #800000;">body</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><</span><span style="color: #800000;">div </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="container"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><</span><span style="color: #800000;">div </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="box"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></</span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></</span><span style="color: #800000;">body</span><span style="color: #0000ff;">></span>
1.0、マージンの幅と高さを中央に固定 (デモ)
この配置方法は幅、高さ、マージンのみに基づいており、あまり柔軟性がありません。
CSS:
<span style="color: #800000;">#container </span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 500px</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> auto</span>; }<span style="color: #800000;"> #box </span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> 150px 200px</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }
2.0、マイナスマージン中心 (デモ)
負のマージンを使用して中央に配置するには、固定の幅と高さを知る必要がありますが、これには比較的大きな制限があります。
CSS:
<span style="color: #800000;">#container </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 500px</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> auto</span>; }<span style="color: #800000;"> #box </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> absolute</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> left</span>:<span style="color: #0000ff;"> 50%</span>;<span style="color: #ff0000;"> top</span>:<span style="color: #0000ff;"> 50%</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> -100px -100px</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }
3.0、絶対位置決めとセンタリング (デモ)
絶対位置を使用して中央に配置するのは非常に一般的な方法です。
CSS:
<span style="color: #800000;">#container </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 500px</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> auto</span>; }<span style="color: #800000;"> #box </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> absolute</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> left</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> top</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> right</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> bottom</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> auto</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }
4.0、テーブルセルのセンタリング (デモ)
テーブルセルを使用して垂直方向のセンタリングを制御します。
CSS:
<span style="color: #800000;">#container </span>{<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;"> table-cell</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 500px</span>;<span style="color: #ff0000;"> vertical-align</span>:<span style="color: #0000ff;"> middle</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>; }<span style="color: #800000;"> #box </span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> 0 auto</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }
5.0、フレックスセンタリング (デモ)
CSS3 で導入された新しいレイアウト方法が使いやすくなりました。欠点: IE9 と IE9 には互換性がありません。
CSS:
<span style="color: #800000;">#container </span>{<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;"> -webkit-flex</span>;<span style="color: #ff0000;"> display</span>:<span style="color: #0000ff;"> flex</span>;<span style="color: #ff0000;"> -webkit-align-items</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;"> align-items</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;"> -webkit-justify-content</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;"> justify-content</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 500px</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> auto</span>; }<span style="color: #800000;"> #box </span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }
6.0、変換中心 (デモ)
CSSのtransform属性を柔軟に利用した比較的斬新な方法です。欠点は、IE9 では互換性がないことです。
CSS:
<span style="color: #800000;">#container </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> auto</span>; }<span style="color: #800000;"> #box </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;"> top</span>:<span style="color: #0000ff;"> 50%</span>;<span style="color: #ff0000;"> left</span>:<span style="color: #0000ff;"> 50%</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> transform</span>:<span style="color: #0000ff;"> translate(-50%, -50%)</span>;<span style="color: #ff0000;"> -webkit-transform</span>:<span style="color: #0000ff;"> translate(-50%, -50%)</span>;<span style="color: #ff0000;"> -ms-transform</span>:<span style="color: #0000ff;"> translate(-50%, -50%)</span>;<span style="color: #ff0000;"> -moz-transform</span>:<span style="color: #0000ff;"> translate(-50%, -50%)</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }
7.0、不確実な幅と高さのセンタリング (絶対位置決めパーセンテージ) (デモ)
幅と高さが不確実なこの種のセンタリングは、より柔軟です。水平方向のセンタリングを実現するには左右のパーセンテージが同じであることを確認し、垂直方向のセンタリングを実現するには上部と下部のパーセンテージが同じであることを確認してください。
CSS:
<span style="color: #800000;">#container </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 500px</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> auto</span>; }<span style="color: #800000;"> #box </span>{<span style="color: #ff0000;"> position</span>:<span style="color: #0000ff;"> absolute</span>;<span style="color: #ff0000;"> left</span>:<span style="color: #0000ff;"> 30%</span>;<span style="color: #ff0000;"> right</span>:<span style="color: #0000ff;"> 30%</span>;<span style="color: #ff0000;"> top</span>:<span style="color: #0000ff;"> 25%</span>;<span style="color: #ff0000;"> bottom</span>:<span style="color: #0000ff;"> 25%</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }
8.0、ボタンが中央に配置 (デモ)
ボタンを外側のコンテナとして使用すると、内部のブロック要素が自動的に垂直方向の中央に配置されます。効果を実現するには、水平方向の中央揃えを制御するだけです。
HTML:
<span style="color: #0000ff;"><</span><span style="color: #800000;">button</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><</span><span style="color: #800000;">div</span><span style="color: #0000ff;">></</span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></</span><span style="color: #800000;">button</span><span style="color: #0000ff;">></span>
CSS:
<span style="color: #800000;">button </span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 600px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 500px</span>;<span style="color: #ff0000;"> border</span>:<span style="color: #0000ff;"> 1px solid #000</span>; }<span style="color: #800000;"> div </span>{<span style="color: #ff0000;"> width</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> height</span>:<span style="color: #0000ff;"> 200px</span>;<span style="color: #ff0000;"> margin</span>:<span style="color: #0000ff;"> 0 auto</span>;<span style="color: #ff0000;"> background-color</span>:<span style="color: #0000ff;"> #0ff</span>; }