CSSのmargin:autoの役割とは?要素を水平方向に中央揃えする方法
margin: auto とは何か
CSSの margin プロパティに値 auto を指定すると、ブロックレベル要素を親コンテナ(包含ブロック)内で水平方向に中央揃えすることができます。これは、左右のマージンに対して利用可能な余白が自動的に均等に分配される仕組みによるものです。
なお、margin: auto を正しく機能させるには、対象の要素に明示的な幅(width)を設定する必要があります。幅が指定されていない場合、ブロック要素はデフォルトでコンテナの全幅を占めるため、中央揃えの効果は現れません。
コード例
以下のコードを実行して、margin: auto の実際の動作を確認してみましょう。
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 200px;
margin: auto;
border: 2px dashed blue;
}
</style>
</head>
<body>
<p>This is demo text</p>
<div>
This is horizontally centered because it has margin: auto;
</div>
</body>
</html>
出力結果

上記の例では、幅200pxのdiv要素が青色の破線ボーダーとともに表示され、ページの左右中央に配置されていることが確認できます。
補足:垂直方向の中央揃えとの違い
margin: auto は水平方向の中央揃えには有効ですが、通常のフローレイアウトでは垂直方向には適用されません。上下方向の中央揃えを行いたい場合は、Flexbox(display: flex と align-items: center)やCSS Gridなど、モダンなレイアウト手法を活用するのが一般的です。
-
CSSのmarginプロパティでinheritを指定して親要素からマージンを継承する方法
CSSのmarginプロパティに「inherit」という値を指定すると、親要素に設定されているマージンの値を子要素が引き継ぐことができます。通常、marginプロパティは親から子へ自動的に継承されないプロパティですが、margin: inherit; を明示的に指定することで、親要素と同じマージン値を強制的に適用できます。以下のコードは、div要素に設定された左マージン(50px)を、内包するp要素がinheritによって継承する具体例です。実際にブラウザで実行して動作を確認してみてください。サンプルコード<!DOCTYPE html> <html> &n
-
CSSのmarginプロパティを使った要素の中央揃え方法を徹底解説
CSSのmarginプロパティを使用すると、ブロックレベル要素を水平方向に中央揃えできます。ただし、中央揃えを機能させるには、対象要素のwidthプロパティで幅を設定しておく必要があります。それでは、CSSのmarginプロパティを使って要素を中央揃えする具体的な例を見ていきましょう。marginのauto値で中央揃えが機能する仕組みmargin: 10px auto;のように左右のマージンにautoを指定すると、利用可能な余白が左右に均等に分配され、要素が親要素の中央に配置されます。このテクニックが有効なのは、要素に明示的な幅が指定されている場合のみです。幅が未指定のブロックレベル要素は、デ