ホームページ >ウェブフロントエンド >htmlチュートリアル >CSS は、Elements_html/css_WEB-ITnose の水平方向の中央揃えを実装します。
CSS は要素の水平方向のセンタリングを実装します
要素は主にブロックレベルの要素とインライン要素に分けられるため、要素の水平方向のセンタリングはこれら 2 つの状況でも議論できます。また、ブロックレベルの要素の実装はより複雑であり、別途議論される。
一般的に使用されるインライン要素は、a/img/input/span などです。タグ内の HTML テキストもこのカテゴリに分類されます。このような場合、親要素に text-align:center を設定することで水平方向の中央揃えが実現されます。
HTML 構造:
<body> <div class="txtCenter"> Hello World!!! </div></body>
CSS スタイル:
<style> div.txtCenter{ text-align:center; }</style>
よく使用されるブロックレベルの要素は、div/table/ul/dl/form/h1/p などです。さまざまなアプリケーション シナリオに応じて、固定幅ブロック レベルと可変幅ブロック レベルの 2 つの状況に分けられます。これらについては個別に説明します。
**固定幅**と**ブロック型**の2つの条件を満たす要素は、**「左右のマージン」値を設定することで中央揃えにすることができます。の「自動」**に。
HTML 構造:
<body> <div> Hello World!!! </div></body>
CSS スタイル:
<style> div{ border:1px solid red;/*为了显示居中效果明显为 div 设置了边框*/ width:500px;/*定宽*/ margin:20px auto;/* margin-left 与 margin-right 设置为 auto */ }</style>
ステップ2: このテーブルに「左右のマージン:自動」を設定します(これは固定幅ブロック要素と同じ方法です)。
HTML 構造:
<div> <table> <tbody> <tr><td> <ul> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> </td></tr> </tbody> </table></div>CSS スタイル:
<style> table{ margin:0 auto; } ul{list-style:none;margin:0;padding:0;} li{float:left;display:inline;margin-right:8px;}</style>** このメソッドの欠点は、非セマンティックな HTML タグが追加され、ネストの深さが増すことです
2.2 display;inline メソッドを設定する
HTML構造:
<body> <div class="container"> <ul> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> </div></body>CSSスタイル:
<style> .container{ text-align:center; } .container ul{ list-style:none; margin:0; padding:0; display:inline; } .container li{ margin-right:8px; display:inline; }</style>
このメソッドの欠点は、ブロックレベル要素の表示がインラインに設定されているため、ボックスモデルなどの多くの機能が欠落していることです
2.3 Set Position:relative と left:50%;HTML 構造:
<body> <div class="container"> <ul> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> </div></body>CSS スタイル:
<style> .container{ float:left; position:relative; left:50% } .container ul{ list-style:none; margin:0; padding:0; position:relative; left:-50%; } .container li{float:left;display:inline;margin-right:8px;}</style>
このメソッドは、ブロック要素を保持しつつ、display:block の形式で表示できます。利点は、サイレント ディスカッション タグを追加せず、ネストの深さを増やさないことです。ですが、その欠点は、position:relative を設定すると、特定の副作用が生じることです。
3 つの方法にはそれぞれ長所と短所があり、実際の状況に応じて選択する必要があります。