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

推薦する

JavaScript カスタム カレンダー効果

この記事では、JavaScriptカスタムカレンダーエフェクトの具体的なコードを参考までに紹介します...

Nginx 500 内部サーバーエラーの解決方法

今日、Nginxを使っていたら500エラーが発生しました。エラーコードを検索してみんなに共有しました...

js クロージャとガベージ コレクション メカニズムの例の詳細な説明

目次序文文章1. 終了1.1 クロージャとは何ですか? 1.2 クロージャの特性1.3 クロージャを...

指定したディレクトリに nginx をインストールする方法の例

会社の要件により、異なる場所にある 2 つの nginx サーバーを同じマシンにインストールする必要...

VMWare を使用して Windows 上で Linux 環境を構築する手順 (画像とテキスト)

Mac を返却して以来、元のラップトップは使用されていません。このラップトップの構成は非常に良好で...

CSS でよく使用されるフォントサイズ、フォント単位、行の高さの詳細な説明

px(ピクセル)ピクセルという言葉は皆さんもよくご存知だと思います。次に、この単位に関するちょっとし...

Docker で複数の MySQL コンテナを作成して実行する方法の例

1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...

MySQL CHARとVARCHARの選択方法

目次VARCHAR 型と CHAR 型結論: VARCHAR 型と CHAR 型VARCHAR と ...

dockerカスタムイメージでphp7をビルドする方法

まず、簡単な Docker インストールを実行します。イメージをカスタマイズするには、ベースイメージ...

CSS の画像パスの問題に関する議論 (同じパッケージ/異なるパッケージ)

CSS ファイルでは、背景を使用する、つまり背景画像を追加する必要がある場合があります。これは通常、...

Vueはアップロードコンポーネントを実装します

目次1. はじめに2. アイデアファイルをアップロードする2つの方法3. ライフサイクル4. コード...

Alibaba Cloud ホストが IP を使用して Web サイトにアクセスできない問題の解決策 (セキュリティ グループ ルールを構成することで解決)

Alibaba Cloud ホストを購入したばかりで、その速度を試すのが待ちきれませんでした。しか...

Vueはプルダウンを実装してさらに読み込む

Element-UI に慣れた開発者なら、無限スクロールの InfiniteScroll が使いにく...

webpack と rollup を使用してコンポーネント ライブラリをパッケージ化する方法

序文以前、ローディングスタイルのコンポーネントを作成しました。コードの再利用性を実現するために、この...

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。 Err] 1064...