CSS で要素を垂直方向に中央揃えする 7 つの方法

CSS で要素を垂直方向に中央揃えする 7 つの方法

【1】中央の要素の幅と高さを知る

絶対値 + 負のマージン

コードの実装

.wrapBox5{
    幅: 300ピクセル;
    高さ: 300px;
    border:1px 赤一色;
    位置: 相対的;
}
.wrapItem5{
    幅: 100ピクセル;
    高さ: 50px;
    位置: 絶対;
    背景:黄色;
    上位: 50%;
    残り:50%;
    上マージン: -25px;
    左マージン: -50px;
}

運用結果

絶対 + マージン 自動

コードの実装

.wrapBox{
    幅: 300ピクセル;
    高さ: 300px;
    背景: 黄色;
    位置: 相対的;
}
.wrapItem{
    幅: 100ピクセル;
    高さ: 50px;
    背景:緑;
    表示: インラインブロック;
    位置: 絶対;
    上: 0px;
    下:0px;
    左: 0px;
    右: 0px;
    マージン:自動;
}

絶対値 + 計算

コードの実装

.wrapBox6{
    幅: 300ピクセル;
    高さ: 300px;
    border:1px 緑一色;
    位置: 相対的;
}
.wrapItem6{
    幅: 100ピクセル;
    高さ: 50px;
    位置: 絶対;
    背景:黄色;
    上: calc(50% - 25px);
    左:calc(50% - 50px);
}

運用結果

3つの比較のまとめ

中央に配置された要素の幅と高さがわかっている場合、中心を設定する方法は比較的簡単です。 3 つの方法の本質は同じです。いずれも、中央に配置された要素に対して絶対的な配置を実行します。上部に 50%、左側に 50% 配置した後、中央に配置された要素の幅と高さの半分に引き戻され、真の中央配置が実現されます。 3 つの方法の違いは、要素自体の幅と高さを引き戻す方法の違いにあります。

【2】中央の要素の幅と高さが不明

絶対 + 変換

コードの実装

.wrapBox{
    幅: 300ピクセル;
    高さ: 300px;
    背景:#ddd;
    位置: 相対的;
}
.wrapItem{
    幅: 100ピクセル;
    高さ: 50px;
    背景:緑;
    位置: 絶対;
    上位: 50%;
    残り:50%;
    変換: translate(-50% , -50%);
}

運用結果

原理は、幅と高さがわかっている場合の実装方法と似ていますが、現在中央にある要素の幅と高さは不明であるため、現在中央にある要素の幅と高さを自動的に取得する必要がある点が異なります。 translate 属性はまさにこの機能を実装します。

利点と欠点 利点: 幅と高さを独自に自動的に計算します。 欠点: transform の他のプロパティを同時に使用すると、相互に影響を及ぼします。
したがって、変換の他のプロパティが使用されていない場合は、この方法をお勧めします。

フレックスレイアウト

.wrapBox2{
    幅: 300ピクセル;
    高さ: 300px;
    背景: 青;
    ディスプレイ: フレックス;
    コンテンツの中央揃え: 中央;
    アイテムの位置を中央揃えにします。
}
/*注: 子要素を行ブロック要素として設定しない場合でも、単一のレイヤーを占有することはありません*/
.wrapItem2{
    幅: 100ピクセル;
    高さ: 50px;
    背景:緑;
}

運用結果

原則: 親要素をフロー レイアウトに設定し、フレックス レイアウトのプロパティ特性に従って子要素を中央に設定します。

利点と欠点 利点: フレックス レイアウトは柔軟性があり、子要素の設定を必要としません。 欠点: 互換性。子要素のfloat、clear、position等が使えません。他のレイアウトも存在する場合、影響が出やすいです。

テーブルセルレイアウト

コードの実装

.wrapBox3{
    幅: 300ピクセル;
    高さ: 300px;
    背景: 黄色;
    表示: テーブルセル;
    垂直位置合わせ: 中央;
    テキスト配置: 中央;
}
.wrapItem3{
    幅: 100ピクセル;
    高さ: 50px;
    背景:緑;
    表示: インラインブロック;
}

運用結果

原則: テーブルの vertical-align プロパティに従って、要素をテーブル要素内で中央に配置するように設定し、次に text-align に従って水平方向の中央を設定できます。

表の要素

コードの実装

.tableBox{
    border:2px 実線黄色;
    幅: 300ピクセル;
    高さ: 300px;
}
.tableBox テーブル{
    幅:100%;
    高さ:100%;
}
.centerWrap{
    テキスト配置: 中央;
    垂直位置合わせ: 中央;
}
.centerアイテム{
    表示: インラインブロック;
    背景:ピンク;
}

運用結果

まとめると、テーブルタグは主に vertical-align 属性と text-align 属性を使用してレイアウトに使用されます。ただし、以前の方法と比較すると、テーブル タグを使用すると冗長なコードが大量に生成されます。推奨されません

CSS で要素を垂直方向に中央揃えする 7 つの方法についての記事はこれで終わりです。CSS で要素を垂直方向に中央揃えする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  よく使用される HTML メタタグ属性 (Web サイトの互換性と最適化に必要)

>>:  K8Sの高度な機能を理解するための記事

推薦する

MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...

アニメーション効果のようなVueトランジションの例

目次結果を一目で見るハート効果デジタルスクロールアニメーションアニメーションのように結果を一目で見る...

Centos7.3 で mysql5.7.18 をインストールして初期パスワードを変更する方法

この記事では、Centos7.3でのmysql5.7.18のインストールと初期パスワードの変更につい...

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

JavaScript の基本変数

目次1. 変数の概要1.1 変数のメモリへの保存1.2 変数の使用1. 変数を宣言する2. 譲渡3....

MySQLのバックアップとリカバリの簡単な分析

目次1. はじめに2. バックアップとリカバリの簡単な定義3. 復旧計画で考慮すべきいくつかの要素4...

Vue ルーティング遅延読み込みの詳細

目次1. ルートの遅延読み込みとは何ですか? 2. ルートの遅延読み込みの使用1. ルートの遅延読み...

Vue3のサンドボックスの仕組みの詳しい説明

目次序文ブラウザコンパイル版ローカルプリコンパイルバージョン要約する序文vue3サンドボックスには主...

CSS 線形グラデーション凹型長方形遷移効果の実装

この記事では、線形グラデーションの凹四角形の遷移効果の難しさやアイデアについて説明します。主に、凹四...

Tomcat のパフォーマンス最適化方法の簡単な概要

Tomcat自体の最適化Tomcat メモリ最適化起動時に大きなメモリ ブロックが必要であることを ...

MySQL学習記録: KEYパーティションが引き起こした血なまぐさい事件

需要背景ビジネス テーブル tb_image のデータの一部は次のとおりです。id は一意ですが、i...

MySQL は、元のデータと同じデータがある場合、更新ステートメントを再度実行しますか?

背景この記事では主に、MySQL が更新ステートメントを実行するときに、元のデータと同一の (つまり...

Mac Docker x509証明書の問題を解決する

質問最近、プライベートミラーセンターにログインする必要がありましたが、ログイン時にエラーメッセージが...

Vue 仮想 DOM の問題について

目次1. 仮想DOMとは何ですか? 2. 仮想 DOM が必要な理由3. 仮想DOMはどのようにして...

テーブルを使用してフォームコントロールの形式を調整し、見栄えを良くします。

自分でウェブページを書きたいので、HTML 言語についても少し勉強しています。これは、大学時代にウェ...