ホームページ ウェブフロントエンド CSSチュートリアル CSS でのさまざまなセンタリング方法について説明します。

CSS でのさまざまなセンタリング方法について説明します。

Dec 12, 2016 pm 02:36 PM

今日は主にCSSにおける様々なセンタリング方法についてお話します。
最初に行うのは、水平方向に中央揃えにすることです。もちろん、最も簡単な方法は

margin:0 auto;
ログイン後にコピー


つまり、margin-left プロパティと margin-right プロパティを auto に設定して、水平方向の中央揃えの効果を実現します。

他の方法はどうですか?一つずつ説明しましょう:

line-height
ログイン後にコピー

まず、テキストの水平方向の中央揃え方法を紹介します:

<div class="wrap">刘放</div>
ログイン後にコピー


line-height を高さに設定して使用するだけです:

.wrap{
  line-height: 200px;/*垂直居中关键*/
  text-align:center;
  
    height: 200px;
  font-size: 36px;
  background-color: #ccc;
}
ログイン後にコピー

効果は次のとおりです:

CSS でのさまざまなセンタリング方法について説明します。

padding

パディングと背景クリップを使用して div の水平方向と垂直方向のセンタリングを実現します:

<div class="parent">
  <div class="children"></div>
</div>
ログイン後にコピー
ログイン後にコピー

backgroun-clip をコンテンツボックスに設定し、背景をコンテンツ領域の外側の端までトリミングし、パディングを使用してコンテンツ領域の差を設定します。外側の div と内側の div の半分を実現します:

.parent{
 margin:0 auto;
 width:200px;
 height:200px;
 background-color:red;
}
.children {
 width: 100px;
 height: 100px;
 padding: 50px;
 background-color: black;
 background-clip:content-box;/*居中的关键*/
ログイン後にコピー

効果は次のとおりです:

CSS でのさまざまなセンタリング方法について説明します。

余白を埋める

次に、水平方向と垂直方向の中央揃えを実現するための余白を埋める方法を紹介します。
まず、親子 div を定義します:



ここでは、 child div margin-top は、親 div の高さから子 div の高さの半分を引いた値に設定され、その後、オーバーフローが親 div の BFC をトリガーするために非表示に設定されます。 LESS コードは次のとおりです。

最終的なセンタリング効果は次のとおりです:

CSS でのさまざまなセンタリング方法について説明します。

absolute Positioning

上、左50%でposition:absoluteを使用し、マージンを負の値に設定して、divを水平方向と垂直方向に中央に配置します。親子 div を定義する必要があります:

@parentWidth:200px;
@childrenWidth:50px;
.parent {
 margin:0 auto;
 height:@parentWidth;
 width:@parentWidth;
 background: red;
 overflow:hidden;/*触发BFC*/
}
.children {
 height:@childrenWidth;
 width:@childrenWidth;
 margin-left:auto;
 margin-right:auto;
 margin-top: (@parentWidth - @childrenWidth) / 2;
 background:black;
}
ログイン後にコピー

次に、対応する CSS を設定します:

<div class="parent">
  <div class="children"></div>
</div>
ログイン後にコピー
ログイン後にコピー

ここで、margin の値は div の幅の半分です。 最終的なレンダリングは次のようになります:

CSS でのさまざまなセンタリング方法について説明します。

text-aligncentered

ご存知のとおり、text-align は div 内のコンテンツを水平方向に中央揃えにすることができます。しかし、子 div をこの div の中央に配置したい場合はどうすればよいでしょうか?子 div の表示を inline-block に設定できます。

.parent {
 position:relative;
 margin:0 auto;
 width:200px;
 height:200px;
 background-color:red;
}
.children {
 position:absolute; 
 left:50%; 
 top:50%; 
 margin:-25px 0 0 -25px ;
 height:50px;
 width:50px;
 background-color: black;
}
ログイン後にコピー

画像の中央揃え

一般的な画像の中央揃えは、画像を div で囲み、div の text-align を中央に設定することと同じです。

以下のリンクを参照してください:
個人サイト

画像をプレースホルダーとして使用して、親コンテナが高さと幅を取得できるようにする特別な方法があります。これにより、-50% オフセットの画像がパーセント計算。利点は、画像のサイズがわからないため、親コンテナのサイズを超えない任意の画像を配置でき、中央に配置されることです。また、互換性も良くIE6にもスムーズに対応しています。コードは次のとおりです:

.parent {
 text-align:center;
 margin:0 auto;
 width:200px;
 height:200px;
 background:red;
}
.children {
 positiona;absolute;
 margin-top:75px;
 width:50px;
 height:50px;
 background: black;
 display:inline-block;/*使其父元素text-align生效*/
}
ログイン後にコピー
<div class="parent">
  <p>
    <img class="hidden-img lazy"  src="/static/imghw/default1.png"  data-src="http://nec.netease.com/img/s/1.jpg"    alt="" />
    <img class="show-img lazy"  src="/static/imghw/default1.png"  data-src="http://nec.netease.com/img/s/1.jpg"    alt="" /></p>
</div>
ログイン後にコピー

効果は次のとおりです:

CSS でのさまざまなセンタリング方法について説明します。

transformcentered

上記の中央揃えの div の例では、div の幅は固定されていますが、実際のプロジェクトでは div が発生する可能性があります。特にレスポンシブなデザインやモバイル側のデザインでは、より一般的です。そこで、固定幅を必要とせずに div を水平方向と垂直方向に中央揃えする方法を紹介します。

最初にコードに移動します:

.parent {
 position:relative;
 width:100%;
 height:200px;
 background:red;
}
p {
 position:absolute;
 top:50%;
 left:50%;
}
.hidden-img {
 visibility:hidden;
}
.show-img {
 position:absolute;
 right:50%;
 bottom:50%;
}
ログイン後にコピー
<div class="parent">
  <div class="children">
    <div class="children-inline">我是水平垂直居中噢!</div>
  </div>
</div>
ログイン後にコピー

効果は次のとおりです:

CSS でのさまざまなセンタリング方法について説明します。

まず、floatを使用して、中央に配置する必要があるdivの親div、つまり子divの幅を縮小し、次に左に配置します。 :50%、子の左側を水平正中線に揃えます。この時点では、まだ実際には中央に配置されていません。水平方向に中央に配置されるように、children-inner を左に -50% 移動する必要があります。

まず垂直方向について説明します。まず、子の上部を 50% に設定し、その上端を垂直の中心線に合わせます。同様に、子の内部を上に -50% 移動する必要があります。ただし、この 50% は計算できないため、translate3d(0, -50%, 0); を使用します。このメソッドは非常に使いやすいです。


flex centering

最後に、CSS3のdisplay:flexで実装される水平方向と垂直方向のセンタリング方法を紹介します。

.parent {
 float: left;
 width: 100%;
 height: 200px;
 background-color: red;
}
.children {
 float:left;
 position:relative;
 top:50%;
 left:50%;
}
.children-inline {
 position: relative;
 left: -50%;
 -webkit-transform : translate3d(0, -50%, 0);
 transform : translate3d(0, -50%, 0);
 background-color: black;
 color:white;
}
ログイン後にコピー
<div class="parent">
  <div class="children">我是通过flex的水平垂直居中噢!</div>
</div>
ログイン後にコピー

効果は次のとおりです:

CSS でのさまざまなセンタリング方法について説明します。この方法は最も簡単ですが、互換性は良くありませんが、時間が経つにつれて、すべての主要なブラウザが互換性を持つようになります。

上記は CSS のさまざまなセンタリング方法についての全体的な説明です。気に入っていただければ幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

GraphQLキャッシングの使用 GraphQLキャッシングの使用 Mar 19, 2025 am 09:36 AM

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

上品でクールなカスタムCSSスクロールバー:ショーケース 上品でクールなカスタムCSSスクロールバー:ショーケース Mar 10, 2025 am 11:37 AM

この記事では、Scrollbarsの世界に飛び込みます。私は知っています、それはあまりにも魅力的ではありませんが、私を信じてください、よく設計されたページは手をつないで行きます

最初のカスタムSvelteトランジションを作成します 最初のカスタムSvelteトランジションを作成します Mar 15, 2025 am 11:08 AM

Svelte Transition APIは、コンポーネントがカスタムSVELTE遷移を含むドキュメントを入力または離れるときにアニメーション化する方法を提供します。

ショー、Don&#039; t Tell ショー、Don&#039; t Tell Mar 16, 2025 am 11:49 AM

あなたのウェブサイトのコンテンツプレゼンテーションの設計にどれくらいの時間に費やしますか?新しいブログ投稿を書いたり、新しいページを作成したりするとき、あなたは考えていますか

Redwood.jsと動物相を使用してイーサリアムアプリを構築します Redwood.jsと動物相を使用してイーサリアムアプリを構築します Mar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

NPMコマンドは何ですか? NPMコマンドは何ですか? Mar 15, 2025 am 11:36 AM

NPMコマンドは、サーバーの開始やコンパイルコードなどの1回限りのプロセスまたは継続的に実行されるプロセスとして、さまざまなタスクを実行します。

特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x) 特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x) Mar 24, 2025 am 10:37 AM

先日、エリック・マイヤーとおしゃべりをしていたので、形成期のエリック・マイヤーの話を思い出しました。 CSS特異性に関するブログ投稿を書きました

CSSを使用して、テキストシャドウやグラデーションなどのテキスト効果を作成しますか? CSSを使用して、テキストシャドウやグラデーションなどのテキスト効果を作成しますか? Mar 14, 2025 am 11:10 AM

この記事では、影やグラデーションなどのテキスト効果にCSSを使用し、パフォーマンスのために最適化し、ユーザーエクスペリエンスの向上について説明します。また、初心者向けのリソースもリストしています。(159文字)

See all articles