ホームページ ウェブフロントエンド CSSチュートリアル CSS で中央揃えのスタイルを実装するためのいくつかの手法の長所と短所の詳細な説明

CSS で中央揃えのスタイルを実装するためのいくつかの手法の長所と短所の詳細な説明

Jul 20, 2017 am 09:38 AM
css テクノロジー

マイナスマージン

これはおそらく現時点で最も人気のある使用方法です。ブロック要素のサイズがわかっている場合は、次の方法でコンテンツ ブロックをコンテナ内の中央に配置できます:

外側のマージンに負の数値をとり、サイズは幅/高さの半分になります (ボックスのパディングを含む) -サイズ設定: ボーダーボックスは使用されません)、プラス上: 50%、左: 50%;。つまり:

.is-Negative {  
        width: 300px;  
        height: 200px;  
        padding: 20px;  
        position: absolute;  
        top: 50%; left: 50%;  
        margin-left: -170px; /* (width + padding)/2 */  
        margin-top: -120px; /* (height + padding)/2 */  
}
ログイン後にコピー

テストの結果、これが IE6 ~ IE7 でも適切に動作する唯一の方法であることがわかりました。

利点:

1. IE6-IE7と互換性のある優れたクロスブラウザー機能。

2. コードの量が少ない。

短所:

1. 適応性がありません。サイズのパーセントおよび最小/最大プロパティ設定はサポートされていません。

2.内容物が容器から溢れる可能性があります。

3. 余白のサイズは、パディングと box-sizing: border-box が定義されているかどうかに関係し、さまざまな状況に基づいて計算する必要があります。

変形

これは、絶対中心化と同じ効果を達成できる最も単純な方法であり、ジョイント可変高さ方法の使用もサポートしています。コンテンツブロック定義のtransform:translate(-50%,-50%)には、ブラウザメーカーのプレフィックスに加えて

top:50%; left:50%;

コードタイプ:

.is-Transformed {   
  width: 50%;  
  margin: auto;  
  position: absolute;  
  top: 50%; left: 50%;  
  -webkit-transform: translate(-50%,-50%);  
      -ms-transform: translate(-50%,-50%);  
          transform: translate(-50%,-50%);  
}
ログイン後にコピー

利点:度1が必要です。コンテンツの高さを変更できます 内容 2. コード量が少ない

欠点:

1. IE8 はサポートしていません

2. 属性にはブラウザーの製造元のプレフィックスを記述する必要があります

3. 他の変換効果を妨げる可能性があります

4.場合によっては、テキストまたは要素の境界のレンダリングがぼやけて見えることがあります

変換の実装とセンタリングの詳細については、CSS トリックの記事「PercentageWidth/Height 要素のセンタリング」を参照してください

Table-Cell

一般に、コンテンツ ブロックの高さは実際のコンテンツの高さに応じて変化し、ブラウザーの互換性も良好であるため、これがおそらく中央揃えを実現する最良の方法です。最大の欠点は、多くの追加のマークアップが必要となり、最も内側の要素を中央に配置するには 3 層の要素が必要になることです。 HTML:

<div class="Center-Container is-Table">  
  <div class="Table-Cell">  
    <div class="Center-Block">  
    <!-- CONTENT -->  
    </div>  
  </div>  
</div>
ログイン後にコピー

CSS:

.Center-Container.is-Table { display: table; }  
.is-Table .Table-Cell {  
  display: table-cell;  
  vertical-align: middle;  
}  
.is-Table .Center-Block {  
  width: 50%;  
  margin: 0 auto;  
}
ログイン後にコピー

利点:

1. 高さ変数

2. コンテンツのオーバーフローは親要素を展開します。

3. 優れたブラウザー間互換性。

欠点:

追加のHTMLタグが必要

12.インラインブロック

センタリングを実現するための基本的なアイデアは、display: inline-block、vertical-align : middle、および疑似-を使用することです。要素はコンテナ内のコンテンツ ブロックの中央に配置されます。 コンテンツ ブロックの幅がコンテナの幅より大きい場合、たとえば長いテキストが配置される場合、コンテンツ ブロックの幅はコンテナの 100% から 0.25em を引いた値を超えることはできません。それ以外の場合は、擬似element: を使用すると、コンテンツ ブロックがコンテナの上部に押し込まれ、 :before を使用すると、コンテンツ ブロックが 100% 下にオフセットされます。

コンテンツ ブロックができるだけ多くの水平スペースを占める必要がある場合は、max-width: 99% (大きなコンテナの場合) または max-width: calc(100% -0.25em) (サポートされているブラウザーとコンテナの幅)。

HTML:

<div class="Center-Container is-Inline">  
  <div class="Center-Block">  
    <!-- CONTENT -->  
  </div>  
</div>
ログイン後にコピー

CSS:

.Center-Container.is-Inline {   
  text-align: center;  
  overflow: auto;  
}  
  
.Center-Container.is-Inline:after,  
.is-Inline .Center-Block {  
  display: inline-block;  
  vertical-align: middle;  
}  
  
.Center-Container.is-Inline:after {  
  content: &#39;&#39;;  
  height: 100%;  
  margin-left: -0.25em; /* To offset spacing. May vary by font */  
}  
  
.is-Inline .Center-Block {  
  max-width: 99%; /* Prevents issues with long content causes the content block to be pushed to the top */  
  /* max-width: calc(100% - 0.25em) /* Only for IE9+ */   
}
ログイン後にコピー

この方法の長所と短所は、Table-Cell 方法と似ています。これは確かにハック方法であるため、最初は無視しました。ただし、これは非常に一般的な使用法であり、ブラウザーで十分にサポートされています。

利点:

1. 可変の高さ

2. コンテンツのオーバーフローにより親要素が拡張されます。

3. クロスブラウザをサポートし、IE7 にも適しています。

短所:

1. コンテナが必要です

2. 水平方向の中央揃えは、マージン左に依存します: -0.25em; このサイズは、さまざまなフォント/フォント サイズに合わせて調整する必要があります。

3. コンテンツ ブロックの幅はコンテナの 100% (0.25em) を超えることはできません。

Flexbox

これは CSS レイアウトの将来のトレンドです。 Flexbox は CSS3 の新しい属性で、元々は垂直方向の中央揃えなどの一般的なレイアウトの問題を解決するために設計されました。 Flexbox は中央揃えのためだけではなく、列を分割したり、奇妙なレイアウトの問題を解決したりするためにも使用できることを覚えておいてください。

利点: 1. コンテンツブロックの幅と高さは任意であり、適切にオーバーフローできます。

2. より複雑で高度なレイアウト手法で使用できます。

欠点:

1. IE8/IE9 はサポートされていません。

2. 本文には特定のコンテナと CSS スタイルが必要です。

3. 最新のブラウザで実行されるコードには、ブラウザのベンダー プレフィックスが必要です。

4. パフォーマンス上の問題が発生する可能性があります

提案:

各テクノロジーには長所と短所があります。どのテクノロジーを選択するかは、サポートされているブラウザーとコーディングによって異なります。決定には上記の比較表を使用してください。

簡単な代替方法として、絶対センタリング技術がうまく機能します。以前は負のマージンを使用していましたが、代わりに絶対センタリングを使用できるようになりました。煩わしいマージン計算や余分なマークアップに対処する必要がなくなり、コンテンツ ブロックのサイズを変更したり中央揃えにすることもできます。

サイトで高さが可変のコンテンツが必要な場合は、テーブルセルとインラインブロックの 2 つの方法を試すことができます。出血しそうになっている場合は、Flexbox を試して、この高度なレイアウト テクノロジの利点を体験してください。

以上がCSS で中央揃えのスタイルを実装するためのいくつかの手法の長所と短所の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

ブートストラップにスプリットラインを書く方法 ブートストラップにスプリットラインを書く方法 Apr 07, 2025 pm 03:12 PM

ブートストラップスプリットラインを作成するには2つの方法があります。タグを使用して、水平方向のスプリットラインを作成します。 CSS Borderプロパティを使用して、カスタムスタイルのスプリットラインを作成します。

ブートストラップのサイズを変更する方法 ブートストラップのサイズを変更する方法 Apr 07, 2025 pm 03:18 PM

Bootstrapの要素のサイズを調整するには、次のものを含むDimensionクラスを使用できます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

ブートストラップのフレームワークをセットアップする方法 ブートストラップのフレームワークをセットアップする方法 Apr 07, 2025 pm 03:27 PM

Bootstrapフレームワークをセットアップするには、次の手順に従う必要があります。1。CDNを介してブートストラップファイルを参照してください。 2。独自のサーバーでファイルをダウンロードしてホストします。 3。HTMLにブートストラップファイルを含めます。 4.必要に応じてSASS/LESSをコンパイルします。 5。カスタムファイルをインポートします(オプション)。セットアップが完了したら、Bootstrapのグリッドシステム、コンポーネント、スタイルを使用して、レスポンシブWebサイトとアプリケーションを作成できます。

ブートストラップに写真を挿入する方法 ブートストラップに写真を挿入する方法 Apr 07, 2025 pm 03:30 PM

ブートストラップに画像を挿入する方法はいくつかあります。HTMLIMGタグを使用して、画像を直接挿入します。ブートストラップ画像コンポーネントを使用すると、レスポンシブ画像とより多くのスタイルを提供できます。画像サイズを設定し、IMG-Fluidクラスを使用して画像を適応可能にします。 IMGボーダークラスを使用して、境界線を設定します。丸い角を設定し、IMGラウンドクラスを使用します。影を設定し、影のクラスを使用します。 CSSスタイルを使用して、画像をサイズ変更して配置します。背景画像を使用して、背景イメージCSSプロパティを使用します。

ブートストラップボタンの使用方法 ブートストラップボタンの使用方法 Apr 07, 2025 pm 03:09 PM

ブートストラップボタンの使用方法は?ブートストラップCSSを導入してボタン要素を作成し、ブートストラップボタンクラスを追加してボタンテキストを追加します

See all articles