HTML における要素の水平および垂直中央揃えに関する議論

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ページ ウィンドウに対して水平方向と垂直方向に中央に配置する必要があることがよくあります。

これまで、多くの方法が検討されてきました。

HTML:

XML/HTML コードコンテンツをクリップボードにコピー
  1. <本文>   
  2.      < div  クラス= "maxbox" >   
  3.          < div  クラス= "minbox align-center" > </ div >   
  4.      </div>   
  5. </本文>   
  6.   

効果図 (以下の方法は同じ効果図を持ちます):

1つ目: CSS絶対位置指定

主に絶対位置を使用し、マージンを使用して中央の位置に調整します。

親要素:

CSSコードコンテンツをクリップボードにコピー
  1. .maxbox{
  2.     位置:相対的;
  3.     : 500px ;
  4.     高さ: 500px ;
  5.     マージン: 5px ;
  6. ボックスシャドウ: 1px   1ピクセル  1px RGBA(0, 0, 0, 0.8)、- 1px - 1px   1px RGBA(0, 0, 0, 0.8);
  7. }
  8.   

子要素:

CSSコードコンテンツをクリップボードにコピー
  1. .minbox{
  2.     : 200px ;
  3.     高さ: 200px ;
  4. ボックスシャドウ: 1px   1ピクセル  1px RGBA(0, 0, 0, 0.8)、- 1px - 1px   1px RGBA(0, 0, 0, 0.8);
  5. }

水平および垂直の中央揃え:

CSSコードコンテンツをクリップボードにコピー
  1. .align-中央{
  2.     位置:絶対;
  3.     :50%;
  4.     上位:50%
  5.     左余白: - 100px ; /*幅/-2*/   
  6.     上マージン: - 100px ; /*高さ/-2*/   
  7. }

2番目の方法: CSS絶対位置指定 + Javascript/JQuery

主に絶対位置指定を使用し、Javascript/JQuery を使用して中央の位置に調整します。最初の方法と比較して、この方法ではクラスの柔軟性が向上します。

親要素:

CSSコードコンテンツをクリップボードにコピー
  1. .maxbox{
  2.     位置:相対的;
  3.     : 500px ;
  4.     高さ: 500px ;
  5.     マージン: 5px ;
  6. ボックスシャドウ: 1px   1ピクセル  1px RGBA(0, 0, 0, 0.8)、- 1px - 1px   1px RGBA(0, 0, 0, 0.8);
  7. }
  8.   

子要素:

CSSコードコンテンツをクリップボードにコピー
  1. .minbox{
  2.     : 200px ;
  3.     高さ: 200px ;
  4. ボックスシャドウ: 1px   1ピクセル  1px RGBA(0, 0, 0, 0.8)、- 1px - 1px   1px RGBA(0, 0, 0, 0.8);
  5. }

水平および垂直の中央揃え:

CSSコードコンテンツをクリップボードにコピー
  1. .align-中央{
  2.     位置:絶対;
  3.     :50%;
  4.     上位:50%
  5. }
  6.   

JQuery:

JavaScriptコードコンテンツをクリップボードにコピー
  1. $(関数() {
  2. $( ".align-center" ).css(
  3. {
  4.              「左マージン」 : ($( 「.align-center」 ).width()/-2),
  5.              「マージントップ」 : ($( 「.align-center」 ).height()/-2)
  6. }
  7. );
  8. });
  9.   

3番目のタイプ: CSS3絶対位置+変位

絶対配置と CSS3 の transform: translate を使用することで、同じ効果を実現できます。

親要素:

CSSコードコンテンツをクリップボードにコピー
  1. .maxbox{
  2.     位置:相対的;
  3.     : 500px ;
  4.     高さ: 500px ;
  5.     マージン: 5px ;
  6. ボックスシャドウ: 1px   1ピクセル  1px RGBA(0, 0, 0, 0.8)、- 1px - 1px   1px RGBA(0, 0, 0, 0.8);
  7. }
  8.   

子要素:

CSSコードコンテンツをクリップボードにコピー
  1. .minbox{
  2.     : 200px ;
  3.     高さ: 200px ;
  4. ボックスシャドウ: 1px   1ピクセル  1px RGBA(0, 0, 0, 0.8)、- 1px - 1px   1px RGBA(0, 0, 0, 0.8);
  5. }
  6.   

水平および垂直の中央揃え:

CSSコードコンテンツをクリップボードにコピー
  1. .align-中央{
  2.     位置:絶対;
  3.     上位:50%
  4.     :50%;
  5. -webkit-transform: translate(-50%, -50%);
  6. -moz-transform: translate(-50%, -50%);
  7. transform: translate(-50%, -50%); /*左上に移動*/   
  8. }
  9.   

4番目: Flexbox: [柔軟なレイアウト ボックス モデル]

Flexbox モデルを使用すると、要素を水平方向と垂直方向に配置することが非常に簡単になります。

ここで HTML を変更する必要があります。

XML/HTML コードコンテンツをクリップボードにコピー
  1. < div  クラス= "maxbox align-center" >   
  2.      < div  クラス= "minbox" > </ div >   
  3. </div>   
  4.   

親要素:

CSSコードコンテンツをクリップボードにコピー
  1. .maxbox{
  2.     位置:相対的;
  3.     : 500px ;
  4.     高さ: 500px ;
  5.     マージン: 5px ;
  6. ボックスシャドウ: 1px   1ピクセル  1px RGBA(0, 0, 0, 0.8)、- 1px - 1px   1px RGBA(0, 0, 0, 0.8);
  7. }
  8.   

子要素:

コンテンツをクリップボードにコピーするC# コード
  1. .minbox{
  2. 幅: 200ピクセル;
  3. 高さ: 200px;
  4. ボックスの影: 1px 1px 1px rgba(0, 0, 0, 0.8), -1px -1px 1px rgba(0, 0, 0, 0.8);
  5. }

水平および垂直の中央揃え:

CSSコードコンテンツをクリップボードにコピー
  1. .align-中央{
  2.     ディスプレイ: flex;
  3.      display : -webkit-flex; /*互換性の問題*/   
  4.     両端揃え-コンテンツ:中央;
  5. アイテムの位置を中央揃えにします
  6. }

いくつかの方法の比較:

最初のタイプの CSS 絶対位置マージン調整は互換性は良好ですが、柔軟性に欠けます。水平方向と垂直方向に中央揃えする必要のあるボックスが多数ある場合は、幅と高さが異なるため、異なる .align-center を記述する必要があります。
2 番目はスクリプト言語を使用しており、互換性が高く、最初のものの欠点を補っています。水平および垂直の中央揃え効果は、幅と高さの変更による影響を受けません。
3 番目は CSS3 の新しいプロパティをいくつか使用し、IE10、Chrome、Firefox、Opera と互換性があります。互換性はあまり良くなく、幅と高さの変更によって水平および垂直の中央揃え効果は影響を受けません。
Flexbox モデルを使用すると、Firefox、Opera、Chrome と互換性がありますが、IE は完全に無効になります。水平および垂直の中央揃え効果は、幅と高さの変更による影響を受けません。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。

<<:  時間別にグループ化された MySQL クエリ ステートメント

>>:  JavaScript 関数呼び出しの典型的なサンプルコード

推薦する

Nodejs がイントラネット侵入サービスを実装

目次1. LAN内のプロキシ2. イントラネットの浸透イントラネット侵入とは何ですか?橋プロキシサー...

CentOS 8 VMware 仮想マシンがインターネットにアクセスするための静的 IP ネットワーク カードの設定の詳細な説明

最初のステップ: VMwareで、「編集」-「仮想ネットワークエディタ」をクリックします。下図に示す...

Dockerカスタムネットワークの詳細な紹介

目次Dockerカスタムネットワーク1. カスタムネットワークの紹介2. カスタムネットワークを作成...

mysql8.0.18 で winx64 をインストールするための詳細なチュートリアル (画像とテキスト付き)

MySQLデータベースをダウンロードするには、https://dev.mysql.com/down...

フローティングをクリアするいくつかの方法(推奨)

1. 同じタイプの空の要素を追加し、要素の CSS 属性 clear:both; を設定します。 ...

Vueコンポーネントの動的コンポーネントの詳細な説明

目次要約する要約する配列が変更されると、対応するデータを動的にロードしますシナリオ: 異なるコンポー...

MySQL 8.0.13 zipパッケージのインストール方法について

MySQL 8.0.13 にはデフォルトでデータ フォルダがあります。このフォルダを削除する必要があ...

MySQL フルテキスト インデックス、ジョイント インデックス、Like クエリ、JSON クエリのうち、どれが高速ですか?

目次クエリの背景1. クエリをいいね2. JSON関数クエリ3. 共同インデックスクエリ4. 全文イ...

JavaScript イベントバブリング、イベントキャプチャ、イベント委任の詳細な説明

1. イベントバブリング: JavaScript イベント伝播のプロセスでは、要素でイベントがトリガ...

deepin apt コマンドを使用して最新バージョンの docker をインストールする方法

ステップ1: Ubuntuソースを追加するルートに切り替える suルートソフトウェアソースファイルの...

WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

序文休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデ...

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

mysql 5.7.11 winx64.zip インストールと設定方法のグラフィックチュートリアル

MySql データベース システムをインストールして構成します。 1. ダウンロード http://...

MySQL 最適化における B ツリー インデックスの知識ポイントのまとめ

SQL を最適化する必要があるのはなぜですか?当然ですが、SQL ステートメントを記述する場合、次の...

Ubuntu システムに Theano と Keras をインストールする方法

注: システムは Ubuntu 14.04LTS、32 ビット オペレーティング システムです。Py...