水平方向のセンタリングは頻繁に発生する問題です。道はたくさんあるようで、すべての道はローマに通じているようです。しかし、体系的にレビューした後、実際にはいくつかのアイデアを中心に展開します。この記事では、水平方向のセンタリングに関する 4 つのアイデアを紹介します。興味のある方は、前の言葉を参照してください。
水平方向のセンタリングは、頻繁に発生する問題です。道はたくさんあるようで、すべての道はローマに通じているようです。しかし、体系的にレビューした後、実際にはいくつかのアイデアを中心に展開します。この記事では水平方向のセンタリングに関する 4 つのアイデアを紹介します。興味のある方は参考にしてください。
アイデア 1: 親要素に
text-align
:center を設定して、インライン要素の水平方向の中央揃えを実現します 子要素の
display を inline-block に設定し、子要素がインライン要素
[注] IE7 ブラウザと互換性を持たせたい場合は、display:inline;zoom:1; を使用して inline-block の効果を実現できます<style>
.parent{text-align: center;}
.child{display: inline-block;}
</style>
<p class="parent" style="background-color: gray;">
<p class="child" style="background-color: lightblue;">DEMO</p>
</p>
アイデア2: 自身の要素に
を設定する: 0 ブロックレベル要素の水平方向のセンタリングを自動実装【1】サブ要素をテーブルとして表示し、サブ要素をブロックレベル要素にする同時に、テーブルも折り返され、コンテンツによって幅が拡張されます
<style> .child{ display: table; margin: 0 auto; } </style> <p class="parent" style="background-color: gray;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
絶対配置
の
<style> .parent{ position: relative; } .child{ position: absolute; left: 0; rightright: 0; margin: 0 auto; width: 50px; } </style> <p class="parent" style="background-color: gray;height: 20px;"> <p class="child" style="background-color: lightblue;">DEMO</p> </p>
3 つのアイデア: 絶対位置の offset 属性を使用して水平方向のセンタリングを実現します
[1] translation() ディスプレイスメント
関数と連携します
翻訳関数の割合は自身の幅に相対的なので、左: 50% と翻訳 X (-50%) でセンタリング効果を実現できます [注意] IE9- ブラウザは<style>
.parent{
position: relative;
}
.child{
position: absolute;
left: 50%;
transform:translateX(-50%);
}
</style>
<p class="parent" style="background-color: gray;height: 20px;">
<p class="child" style="background-color: lightblue;">DEMO</p>
</p>
[注意] このメソッドは完全に互換性がありますが、HTML 構造を追加します<style>
.parent{
position: relative;
}
.childWrap{
position: absolute;
left: 50%;
}
.child{
position: relative;
left: -50%;
}
</style>
<p class="parent" style="background-color: gray;height: 20px;">
<p class="childWrap">
<p class="child" style="background-color: lightblue;">DEMO</p>
</p>
</p>
構造を追加する必要があります。幅のデフォルト値は自動なので、マイナスのマージンを設定すると幅も増加します。したがって、現時点では固定幅処理が必要です
【注意】完全互換ではありますが、ページ構造と固定幅処理を増やす必要があるため、適用シナリオは限定されます<style>
.parent{
position: relative;
}
.childWrap{
position: absolute;
left: 50%;
}
.child{
width:50px;
margin-left:-50%;
}
</style>
<p class="parent" style="background-color: gray;height: 20px;">
<p class="childWrap">
<p class="child" style="background-color: lightblue;">DEMO</p>
</p>
</p>
アイデア4:水平センタリングを実現するにはフレキシブルボックスモデルのflexを使用します
【注意】IE9ブラウザはをサポートしておりません
【1】フレックスコンテナに主軸の配置を設定します jusify-content:center<style>
.parent{
display: flex;
justify-content: center;
}
</style>
<p class="parent" style="background-color: gray;">
<p class="child" style="background-color: lightblue;">DEMO</p>
</p>
【2】 】フレックス項目にマージンを設定: 0 auto
以上がCSS を使用して水平方向の中央揃えを実現するための 4 つのアイデアの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。