CSS で垂直方向の中央揃えを実装するいくつかの方法の概要

CSS で垂直方向の中央揃えを実装するいくつかの方法の概要

フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は margin:0 auto; と親要素の text-align: center; によって実現できます。しかし、垂直方向の中央揃えを実現するのはそれほど簡単ではありません。以下では、私が作品で垂直方向の中央揃えを実現するために使用しているいくつかの方法を紹介します。

1. 行の高さは高さと等しい/行の高さのみを設定する

この方法は、テキストを中央揃えするのに適しています。 コアは、行の高さをそれを囲むボックスの高さと同じに設定するか、高さを設定せずに行の高さを設定することです。 この方法は、テキストが中央揃えされ、高さが固定されているシーンに適しています。 使用すると便利で役立ちます。

//html
<div class="middle">555</div>
 
//css
。真ん中{
  高さ: 50px;
  行の高さ: 50px;
  背景: 赤;
} 

注目すべきは

インライン要素の場合は高さがないので、まずインライン要素をインラインブロックまたはブロック要素に変換する必要があります。

2. 垂直位置合わせ: 中央

この種の要素の中央揃えでは、親要素の行の高さが自身の高さと等しい必要があり、この要素はインライン ブロック要素です。 3 つの条件がすべて満たされた場合にのみ、垂直方向のセンタリングを実現できます。コードは次のとおりです。

//html
<div class="main">
   <div class="middle"></div>
</div>

//css
。主要 {
  幅: 200ピクセル;
  高さ: 300px;
  行の高さ: 300px;
  背景: #dddddd;
}
。真ん中{
  背景: 赤;
  幅: 200ピクセル;
  高さ: 50px;
  display: inline-block; // または display: inline-table;
  垂直位置合わせ: 中央;
} 

この方法では固定の行の高さが必要であり、実際に達成される中央揃えは真の中央揃えではなく、近似中央揃えであることに注意してください。

3. 絶対位置と負のマージン

この方法の核となるのは、まず中央に配置する要素を絶対位置に設定し、次にその top: 50%; に要素自体の高さの負の半分に等しい margin-top を加えて中央に配置することです。利点は、実装が簡単で、親要素の高さをパーセンテージで指定でき、行の高さを設定する必要がないことです。コードは次のとおりです。

//html
<div class="main">
  <div class="middle"></div>
</div>
  
//css
。主要 {
  幅: 60ピクセル;
  高さ: 10%;
  背景: #dddddd;
  position: relative; //親要素は相対位置に設定されます}
。真ん中{
  position: absolute; //絶対位置に設定します top: 50%; //上の値は50%です
  margin-top: -25%; // margin-top を要素の高さの半分に設定します width: 60px;
  高さ: 50%;
  背景: 赤;
}

4. 絶対位置と margin:auto

まずコード:

//html
<div class="main">
  <div class="middle"></div>
</div>
  
//css
。主要 {
  幅: 60ピクセル;
  高さ: 10%;
  背景: #dddddd;
  position: relative; //親要素は相対位置に設定されます}
。真ん中{
  幅: 30%;
  高さ: 50%;
  position: absolute; //絶対位置に設定します top: 0;
  bottom: 0; // 上と下を 0 に設定します。
  left: 0; //left と right も 0 に設定すると、水平方向と垂直方向の両方の中央揃えを実現できます right: 0;
  マージン:自動;
  背景: 赤;
}

この方法の利点は、垂直方向のセンタリングだけでなく、水平方向のセンタリングも実現できることです。欠点は、ネットワークやパフォーマンスが悪い場合に、ボックスが直接固定されず、ユーザーエクスペリエンスが低下する可能性があることです。

5. フレックスレイアウト

フレックスレイアウトは垂直方向と水平方向の中央揃えを簡単に実現できるため、多くの利点があり、モバイル端末で広く使用されています。欠点は、ブラウザの互換性が低いことです。コードは次のとおりです。

//html
<div class="main">
  <div class="middle"></div>
</div>
 
//css
。主要 {
  幅: 60ピクセル;
  高さ: 10%;
  背景: #dddddd;
  display: flex; //flexに設定
  justify-content: center; // 水平中央 align-items: center; // 垂直中央}
。真ん中{
  幅: 30%;
  高さ: 50%;
  背景: 赤;
} 

要約する

上記は、私が紹介した CSS で垂直方向の中央揃えを実現するいくつかの方法の要約です。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信します。

<<:  無視されたDOCTYPE記述の分析

>>:  シェルスクリプトは、Docker の半自動コンパイル、パッケージ化、およびリリースアプリケーション操作を構築します。

推薦する

入力のid属性とname属性の違いの例

長い間ウェブサイトを作ってきましたが、入力時のnameとidの違いがまだわかりません。最近jQuer...

Webデザインチュートリアル(1):手順と全体レイアウト

<br />注:ウェブサイトの種類を示すものを除くすべてのテキストは、企業サイト用です。...

見落としがちなVue.jsのAPIを詳しく解説

目次次のチェックv-model 構文シュガー.sync 修飾子$セット計算プロパティセット要約する次...

Vue2.x - アンチシェイクとスロットリングの使用例

目次ユーティリティ: vue での使用:説明する:画像安定化:スロットル:ユーティリティ: // 手...

el-table カプセル化に基づくドラッグ可能な行と列、および選択列コンポーネントの実装

効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...

MySQLデータベースのマスタースレーブ同期構成と読み取り書き込み分離

MySQL マスター スレーブ レプリケーションを使用する利点は次のとおりです。 1. 安定性を向上...

CSS エクスペリエンスを充実させる 5 つの便利な CSS セレクターを紹介します

Web デザイナーとして豊富な CSS 経験を持つ私たちは、あらゆる種類のコード構文、互換性、スニペ...

親ページの更新を制御するために HTML で iframe を実装するためのアイデアとコード

1. 応用シナリオ親ページ a.jspサブページ b.jsp (ページ a に埋め込まれた ifra...

Vueバックグラウンド管理に多言語機能を追加する例

目次1.まず、main.jsページを設定します2. 対応するパスの下で言語パックを構成します。ここに...

HTML 5 ワーキングドラフトの謎を解く

World Wide Web Consortium (W3C) は、HTML 5 仕様のドラフトをリ...

Ubuntu 18.04 Server バージョンのインストールと使用方法 (画像とテキスト)

1 システムのインストール手順OSバージョン:1804イメージのダウンロード: http://cd...

MySQLデータベースのパスワードを忘れた場合の解決策

先ほど MySQL パスワードを設定したのに、外食したり荷物を受け取ったりするときにパスワードを忘れ...

XHTML におけるタイトルタグと段落タグの使用に関する詳細な説明

XHTML 見出しの概要Word 文書を作成するときは、「第 1 章」、「1.2.1」などのタイトル...

WeChatアプレットはシンプルなサイコロゲームを実装します

この記事では、サイコロゲームを実装するためのWeChatアプレットの具体的なコードを参考までに共有し...

Office ファイルのオンライン プレビュー用の Vue サンプル コード

最近、電子アーカイブに取り組んでおり、バックエンドではファイルの Huawei Cloud OSS ...