ホームページ > 記事 > ウェブフロントエンド > CSSのセンタリング問題の解決策をまとめます。
【インライン要素】inline、inline-block、inline-table、inline-flex要素に適用可能
.center { text-align: center; }
【ブロックレベル要素】適用可能ブロックレベル要素
①1つのブロックレベル要素
.center { margin: 0 auto; }
②複数のブロックレベル要素
方法一:将块级元素变为行内块级元素 html部分: <main class="inline-block-center"> <p>1</p> <p>2</p> <p>3</p> </main> css部分: .inline-block-center { text-align: center; } .inline-block-center p { display: inline-block; text-align: left; } 方法二:flex布局 html部分: <main class="flex-center"> <p>1</p> <p>2</p> <p>3</p> </main> css部分: .flex-center{ display:flex; justify-content:center; }
[インライン要素]
①単一のインライン要素:
ケース1:リンクまたはテキストにWhenがある場合要素を折り返す、上下のパディングを均等に設定する
.link { padding-top: 30px; padding-bottom: 30px; }
ケース2:リンクやテキストを折り返さない場合、行の高さと高さを同じに設定する
.center-text-trick { height: 100px; line-height: 100px }
②複数のインライン要素:
方法一:将多个行内元素分别置于table-cell中 html部分: <table> <tr> <td> 1 </td> </tr> </table> css部分: table td { background: black; color: white; padding: 20px; border: 10px solid white; /* default is vertical-align: middle; */ } 方法二:将父元素设置为display:table,将自身设置为display:table-cell html部分: <p class="center-table"> <p>1</p> </p> css部分: .center-table { display: table; height: 250px; width: 240px; } .center-table p { display: table-cell; vertical-align: middle; } 方法三:使用felex html部分: <p class="flex-center"> <p>1</p> </p> css部分: .flex-center{ display: flex; justify-content: center; flex-direction: column; height: 400px;/*父容器必须有固定高度*/ } 方法四:当以上代码均不可用时,可尝试此奇淫巧技 html部分: <p class="ghost-center"> <p>1</p> </p> css部分: .ghost-center { position: relative; } .ghost-center::before { content: " "; display: inline-block; height: 100%; width: 1%; vertical-align: middle; } .ghost-center p { display: inline-block; vertical-align: middle; }
[ブロックレベル]要素]
①既知の要素の高さ (絶対配置+負のマージン)
.parent { position: relative; } .child { position: absolute; top: 50%; height: 100px; margin-top: -50px; /* 为元素高度的一半,没有box-sizing时,为height+padding+border的一半*/ }
②不明な要素の高さ(前の方法と同様)
.parent { position: relative; } .child { position: absolute; top: 50%; transform: translateY(-50%); }
③フレックスレイアウト
.parent { display: flex; flex-direction: column; justify-content: center; }
①固定幅がある High要素
.parent { position: relative; } .child { width: 300px; height: 100px; padding: 20px; position: absolute; top: 50%; left: 50%; margin: -70px 0 0 -170px;/* 注意此处为height+padding+的一半*/ }
② 幅と高さが固定されていない要素 (幅と高さが固定されていない前の要素と同じ、変換を使用して解決します)
.parent { position: relative; } .child { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
③ フレックスボックス レイアウトを使用します
.parent { display: flex; justify-content: center; align-items: center; }
以上がCSSのセンタリング問題の解決策をまとめます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。