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

推薦する

解析を実装するためにPostgreSQLデータベースを書き込むSQLスクリプト関数

この記事は主に、PostgreSQL データベースを記述して解析を実装する SQL スクリプト関数を...

CSS 位置固定左と右の二重配置実装コード

CSS 位置position 属性は、要素の配置タイプを指定します。位置プロパティには 5 つの値が...

Vueはメニューナビゲーションを実装するためにelement-uiを使用します

この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...

CentOS7 で jar アプリケーションの起動を設定する方法

プロジェクトの展開中に遭遇した落とし穴Zhihudemo を展開する際、Jenkins などの自動展...

Ubuntu Linux に Git と GitHub をインストールして使用する

Git 入門Git は、Linux(R) カーネル開発の管理を支援するために 2005 年に Lin...

Docker 環境での Jmeter の分散操作に関する詳細なチュートリアル

1. jmeterの基本イメージを構築するDockerfile は次のとおりです。 # Java 8...

React 国際化 react-i18next の詳細な説明

導入react-i18next は、 i18nextをベースにした強力な国際化フレームワークです。 ...

Nginx ソースコードのコンパイルとインストールのプロセス記録

rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...

dockerでrabbitmqをインストールすると管理ページに入れなくなる問題

1. 環境整備Tencent Cloud Server CENTOS 7 バージョンDockerコン...

フロントエンド制作に関する簡単な議論: 互換性のために IE6 はまだ必要ですか?

国内市場ではIE6~7のサポートに対する一定の需要がまだありますが、フロントエンド開発者として、私た...

ブラウザのキャッシュを防ぐために、js または css の後に ?v= バージョン番号を追加します。

コードをコピーコードは次のとおりです。 <span style="font-size...

CSSフローティングとフローティング解除について

フロートの定義要素を通常のドキュメント フローから外し、要素を左また​​は右に近づけます。親要素の端...

知らないかもしれない実用的なTypeScriptのヒント

目次序文関数のオーバーロードマッピングタイプ部分的、読み取り専用、Null 可能、必須選択、記録除外...

Linux システムに Zookeeper サービスをインストールする方法

1. /usr/local/services/zookeeper フォルダを作成します。 mkdir...

XHTML 特殊文字コレクション

注意&#160;ノーブレークスペース = ノーブレークスペース、 iexcl ¡ &...