この記事では主に、純粋な CSS を使用して中央揃えを実現する 7 つの主要な方法を紹介します。これには、行の高さの中央揃え方法、表のセルの中央揃え方法、上下左右の配置 + マージンの中央揃え方法、50% の配置 + マージンが含まれます。センタリング方法、50% 位置決め + 平行移動センタリング方法、Flexbox センタリング方法、および Flexbox + マージンセンタリング方法を必要とする友人が参照して学ぶことができます。
前書き
就職面接中、面接官が CSS の質問をしたことを覚えています。ブラウザ ウィンドウ内で要素を上下左右の中央に配置する方法です。当時私が与えた答えは、まず JS を使用してブラウザ ウィンドウの高さを取得し、次にウィンドウの高さとして body に line-height を設定し、text-align:center を設定してから要素 display:inline- を設定したことを覚えています。ブロックして垂直方向に揃えます:middle。ため息、今考えただけで疲れてきました。
JS である必要がありますか? CSSだけを使って要素を中央揃えにする方法はないでしょうか?答えは「はい」です。そして、方法は複数あります。
1. 行の高さをセンタリングする方法
親要素:text-align: center; font-size: 0;
text-align: center; line-height:600px; font-size: 0;
子元素:display: inline-block; vertical-align: middle;
注:600px必须为父元素的高度,这里还需注意的一点是font-size需设为零,若未写该属性将导致元素并不能精确垂直居中。该方法即为我面试时所答的方法,缺点很明显,父元素高度须确定。(兼容IE8+)
二、table-cell居中法
父元素:display: table-cell; text-align: center; vertical-align: middle;
子元素:display: inline-block;
注:兼容IE8+
三、上下左右定位+margin居中法
父元素:position: relative;
子元素:position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto;
注:兼容IE8+
四、50%定位+margin居中法
父元素:position: relative;
子元素:position: absolute; left: 50%; top: 50%; margin: -200px 0 0 -200px;
注:200px须为该子元素的宽高的一半。例如该子元素宽为100px,高为50px,那么margin取值为-25px 0 0 -50px。该方法缺点是须确定子元素宽高。(兼容IE8+)
五、50%定位+translate居中法
父元素:position: relative;
子元素:position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
注:该方法使用了CSS3 transform属性,适合用于移动端。(兼容IE9+)
六、Flexbox居中法
父元素:display: flex; justify-content: center; align-items: center;
注:该方法使用了Flexbox弹性布局,移动端兼容性也存在很大问题。(兼容IE10+)
七、Flexbox+margin居中法
父元素:display: flex;
子元素:margin: auto;
子要素: display: inline-block;vertical-align: middle;
注: ここでもう 1 つ注意すべき点は、フォント サイズが必要であることです。ゼロに設定するには、この属性を書き込まないと、要素は垂直方向に正確に中央揃えされません。この方法は、私がインタビュー中に答えた方法です。欠点は明らかです。親要素の高さを決定する必要があります。 (IE8+ と互換性があります)
🎜2. テーブルセルの中央揃えメソッド🎜🎜🎜🎜親要素:display: table-cell:vertical-align: middle;
🎜🎜子要素: display: inline-block;
🎜🎜🎜🎜注: 🎜🎜IE8+と互換性があります🎜🎜🎜🎜 3. 上下左右の配置 + 余白の中央揃え方法🎜🎜🎜親要素:
位置: 相対;
🎜🎜子要素: 位置: 左: 0; 右: 0; マージン: 0;
🎜🎜🎜🎜注: 🎜🎜 IE8+🎜🎜🎜🎜 IV と互換性があります。50% 配置 + マージン中央揃え方式🎜🎜🎜🎜 親要素:
position:相対;
🎜🎜子要素: position : 絶対; left: 50%; margin: -200px 0 0 -200px;
🎜🎜200px である必要があります子要素の幅と高さの半分。たとえば、子要素が幅 100 ピクセル、高さ 50 ピクセルの場合、マージンの値は -25px 0 0 -50px です。この方法の欠点は、子要素の幅と高さを決定する必要があることです。 (IE8+ と互換性があります) 🎜🎜🎜🎜 5. 50% 位置決め + 中央移動の方法🎜🎜🎜🎜親要素:
position:相対;
🎜🎜子要素: position: left: 50 %; トップ: 50%; 変換: 変換(-50%,-50%);
🎜🎜🎜🎜注: 🎜🎜このメソッドは、CSS3 変換属性を使用しており、モバイル端末に適しています。 (IE9+ と互換性があります) 🎜🎜🎜🎜 6. フレックスボックスの中央揃えメソッド 🎜🎜🎜🎜 親要素:
display: flex: align-items: center;
🎜🎜 🎜 🎜注: 🎜🎜この方法は Flexbox の柔軟なレイアウトを使用しており、モバイル互換性にも大きな問題があります。 (IE10+対応) 🎜🎜🎜🎜7. Flexbox+マージンセンタリング方法🎜🎜🎜🎜親要素:
display: flex;
🎜🎜子要素: margin: auto;
🎜 🎜🎜🎜注: 🎜🎜上記と同じ、IE10+と互換性があります🎜以上が純粋なCSSを使用してセンタリングを実現する方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

最近の色に関するツール、記事、リソースの実行がありました。あなたの楽しみのためにここにそれらを丸くすることで、私がいくつかのタブを閉じてもらいましょう。

ロビンは以前にこれをカバーしたことがありますが、私は過去数週間でそれについての混乱を聞いて、他の人がそれを説明することに刺されたのを見ました、そして私は望んでいました

サンドイッチサイトのデザインが大好きです。多くの美しい特徴の中には、これらの見出しがあり、レインボーの下線が下線を描いて、スクロールするときに動きます。そうではありません

多くの人気のある履歴書設計は、グリッド形状にセクションを配置することにより、利用可能なページスペースを最大限に活用しています。 CSSグリッドを使用して、レイアウトを作成しましょう

ページのリロードは何かです。ページが反応しないと思われるとき、または新しいコンテンツが利用可能であると信じるときにページを更新することもあります。時々私たちはただ怒っています

Reactの世界でフロントエンドアプリケーションを整理する方法に関するガイダンスはほとんどありません。 (「正しいと感じる」までファイルを移動するだけです笑)。真実

ほとんどの場合、ユーザーがアプリケーションに積極的に関与しているのか、一時的に非アクティブであるかを本当に気にしません。非アクティブ、意味、おそらく彼ら

Wufooは常に統合に優れています。キャンペーンモニター、MailChimp、TypeKitなどの特定のアプリと統合されていますが、


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
