目次
ブロック要素 ( <div> など) を水平方向に中央揃えにするには、 margin: auto; を使用します。
要素の幅を設定すると、要素がコンテナの端まで拡張されなくなります。
要素は指定された幅を占め、残りのスペースは 2 つの余白に均等に分割されます。
.center {
margin: auto;
width: 50%;
border: 3px solid green;
padding: 20px;
}
注: width 属性が設定されていない(または 100% に設定されている)場合、中央揃えは効果がありません。
要素内のテキストを中央揃えにする必要があるだけの場合は、text-align: center;:を使用します。
.center {
text-align: center;
border: 3px solid green;
}
ヒント:テキストを配置する方法のその他の例については、CSS テキスト の章を参照してください。
画像を中央に配置するには、左右のマージンを auto に設定し、これをブロック要素として設定します。
img {
display: block;
margin-left: auto;
margin-right: auto;
width: 40%;
}
要素を整列させる 1 つの方法は、position:Absolute; を使用することです:
.right {
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 20px;
}
注: 絶対的に配置された要素は通常のフローから削除され、重複する要素が発生する可能性があります。
要素を整列させるもう 1 つの方法は、float 属性を使用することです。
.right {
float: right;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
注: 要素がその要素を含む要素よりも高く、フローティングされている場合、その要素はコンテナからオーバーフローします。 これを修正するにはclearfix ハックを使用できます (以下の例を参照)。
この問題は、overflow: auto; を含む要素に追加することで修正できます。
.clearfix {
overflow: auto;
}
CSS で要素を垂直方向に整列させる方法はたくさんあります。 簡単な解決策は、上下のパディングを使用することです。
.center {
padding: 70px 0;
border: 3px solid green;
}
垂直方向と水平方向の両方の配置には、padding と text-align: center; を使用します。
.center {
padding: 70px 0;
border: 3px solid green;
text-align: center;
}
もう 1 つの方法は、height 属性の値と等しい value を指定して line-height 属性を使用することです。
.center {
line-height: 200px;
height: 200px;
border: 3px solid green;
text-align: center;
}
/* 複数行のテキストがある場合は、次のコードを追加してください: */
.center p {
line-height: 1.5;
display: inline-block;
vertical-align: middle;
}
padding と line-height がオプションでない場合、別の解決策は position と transform を使用することです。属性:
.center {
height: 200px;
position: relative;
border: 3px solid green;
}
.center p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
フレックスボックスを使用してコンテンツを中央に配置することもできます。 flexbox は IE10 以前ではサポートされていないことに注意してください。
.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
border: 3px solid green;
}