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 関数呼び出しの典型的なサンプルコード

推薦する

JDBC 探索 SQLException 分析

1. SQLExceptionの概要JDBC を使用してデータ ソース (この記事のデータ ソースは...

MySQL でのストアド プロシージャと関数の作成の詳細な説明

目次1. ストアドプロシージャ1.1. 基本構文1.2 実行権限を指定してストアドプロシージャを作成...

HTML メタタグの使用の概要 (推奨)

メタタグ機能METAタグは、HTMLタグのHEAD領域にある重要なタグです。文書の文字セット、使用言...

MySQL 悲観的ロックと楽観的ロックの実装

目次序文実際の戦闘1. ロックなし2. 悲観的ロック3. 楽観的ロック要約する序文悲観的ロックと楽観...

N キロメートル以内のデータを検索する MySQL の簡単な例

地球の円周率と半径、検索ポイントの経度と緯度から、検索ポイントと検索データテーブル間の距離はNキロメ...

Dockerイメージ作成の完全なプロセス

目次序文作成手順CentOSベースイメージを作成するコンテナを作成してカスタマイズするカスタムコンテ...

MySQL における count(*)、count(1)、count(col) の違いのまとめ

序文count 関数は、テーブルまたは配列内のレコードをカウントするために使用されます。count(...

ffmpeg コマンドラインを使用してビデオを変換するためのサンプルコード

この記事の本文を始める前に、まず ffmpeg プログラムをインストールする必要があります (Lin...

SQL文のパフォーマンスを分析するための標準的な要約

この記事では、explain を使用して SQL ステートメントを分析する方法を紹介します。実際、イ...

jsの継承の6つの方法を詳しく解説

プロトタイプチェーン継承プロトタイプ継承は、ECMAScript における主な継承方法です。基本的な...

HTML の順序なしリストタグと順序付きリストタグの使用例

1. 上部と下部のリストタグ: <dl>..</dl>:上dt下層dd: カ...

Ubuntu 18.04 MySQL 8.0 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0のインストールと設定方法を参考までに紹介します。具体的な内容は以下の...

CSS 配置レイアウト (位置、配置レイアウト スキル)

1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...

MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明

目次インストール環境の説明MySQLデータベースサービスをインストールするメインライブラリを構成する...

Vue の高度な使用方法チュートリアル 動的コンポーネント

目次基本的な説明AST 解析レンダリング機能通常コンポーネントと動的コンポーネントの比較ファクトリ関...