目次
センタリングに関すること
水平方向テキストの中央揃え
テキストが縦方向中央に配置されます
画像は中央に配置されます
もう少し拡張
リファレンス
ホームページ ウェブフロントエンド htmlチュートリアル things_html/css_WEB-ITnose をセンタリングする

things_html/css_WEB-ITnose をセンタリングする

Jun 21, 2016 am 09:01 AM

センタリングに関すること

最近、対処が必要なセンタリングの問題がいくつか発生しました。ここでは、発生した問題の概要といくつかの解決策を示します。

水平方向テキストの中央揃え

text-align:center;
ログイン後にコピー

要素を水平方向に中央揃えすると、コンテンツがインラインまたはインラインブロックになることがわかります。テキスト以外のシナリオでは、パディングによって実際に同じ効果が得られます。これは内容物に応じて調整できます。そうしないと、外容器の幅が固定されません。

テキストが縦方向中央に配置されます

テキストが 1 行で縦方向中央に配置される場合

line-height: 30px;height: 30px;
ログイン後にコピー

複数行の場合は、これを考慮できます

padding: 30px 0;
ログイン後にコピー

これ 上下の間隔は同じで、複数行の圧迫はありません

画像は中央に配置されます

ここではいくつかのシナリオを示します 1. コンテナーは相対的に大きく、コンテナと画像の幅と高さが固定されているため、上記のアイデアを使用するのは非常に簡単です。解決は簡単です。インライン + 行の高さまたはインライン + パディング

//css.wrap0 {    height: 300px;    width: 100%;    text-align: center; } .c0{    line-height: 300px;    display: inline-block;}
ログイン後にコピー
//dom<div class="wrap0">    <div class="c0">我好</div></div>
ログイン後にコピー

2 コンテナは比較的大きいのですが、コンテナと画像の幅と高さが固定されていないため、画像を水平方向にどのように適応的に処理するかは、インライン要素のテキストの中央揃え方法を使用することで実現できますか? 。 垂直方向では、テキストを垂直方向に中央揃えする他の方法 (vertical-align、インライン要素を中央揃えにする) があるかどうかを実際に検討できます。そう考えると、vertical-align は複数の要素の位置合わせ方法なので、別の要素を非表示にすることも検討できるかもしれません。

//css  .wrap1 {    height: 100%;    width: 100%;    position: fixed;    text-align: center; }    .c1 {    height: 100px;    width: 100px;    background-color: gray;    display: inline-block;    vertical-align: middle; } .c2 {     height: 100%;    background-color: green;    display: inline-block;    vertical-align: middle;    width: 0; }
ログイン後にコピー
//dom<div class="wrap1">    <div class="c1"></div>    <div class="c2"></div></div>
ログイン後にコピー

3 コンテナは比較的小さいですが、コンテンツは比較的大きいです。まず、水平方向の処理方法を見てみましょう。をコンテナ内に配置すると、コンテンツがコンテナの左側に整列されます。理論的には、整列するには内側のコンテナを左側に移動する必要があります。ここで問題となるのは、どのくらい移動する必要があるかということです。

//考虑到方向position = (width[容器] - width[内容])/2
ログイン後にコピー

実際には幅の違いの 1/2 です。それで、残りの問題は、どうやってそこまで移動するかということです。 一般的な位置関連のスタイルには、top|left|right|bottom、margin、position、left が含まれます。また、コンテンツの left が 50% に設定されている場合、実際には width[container]/2 の値に基づきます。それが出てきて、width[content]/2を実装したい場合は、コンテンツの外側に要素をネストするだけです。この要素はコンテンツと同じ幅と高さを持ち、コンテンツのmargin-leftを50%に設定します。 width[content]. ]/2 を実現するには、式が負であることを考慮して、margin-left を 50% にする必要があります。コード

 .wrap1 { height: 100px; width: 200px; margin: 0 auto; text-align: center; border: 1px solid red; position: relative; }     .wrap2 { height: 100px; width: 300px; margin: 0 auto; text-align: center; border: 2px solid blue; position: absolute; left: 50%; }    .c1 { width: inherit; height: inherit; background-color: gray; margin-left:-50%; }
ログイン後にコピー
 <div class="wrap1">    <div class="wrap2">        <div class="c1"></div>    </div></div>
ログイン後にコピー
を直接見ることができます。

ここに落とし穴があります。c1 要素が inline-block スタイルの場合はどうなりますか?

同時に、この効果を垂直方向に実現したい場合はどうなりますか? 、これをしてください。 上記の方法は簡単に思いつくので、ぜひ試してみてください。 実際、これは不可能です。 margin-top の値は、親要素の高さではなく幅に基づいて計算されます。それで。 。 。 。 特別な方法で計算方法を変更することもできます。たとえば、マージンを親要素の高さに基づいて計算すると、次のコードを上記の Wrap1 スタイルに追加するだけで済みます。

 -webkit-writing-mode: vertical-rl; /* for browsers of webkit engine */ writing-mode: tb-rl; /* for ie */
ログイン後にコピー

このスタイルを使用しない場合は、js の組み合わせを使用してマージン値を計算することもできます

もう少し拡張

実際、位置を比例的に計算する場合は、CSS3 でtranslate を使用すると、DOM 構造がより簡潔になります。 まず、コードを見てみましょう。コンテナがコンテンツより大きい場合:

 .wrap1 { width: 200px; height: 300px; margin: 300px auto; position: relative; border: 1px solid red; }    .c1 { width: 100px; height: 200px; position: absolute; top: 50%; left: 50%; background-color: gray; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
ログイン後にコピー
<div class="wrap1">    <div class="c1"></div></div>
ログイン後にコピー

上記のコードは、コンテンツがコンテナより大きい場合にも適用できます

リファレンス

  1. CSS 書き込みモード
  2. マージン系列の割合
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

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

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

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

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

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

See all articles