ホームページ > ウェブフロントエンド > CSSチュートリアル > CSSのセンタリングにinline-blockを使用した例を詳しく解説

CSSのセンタリングにinline-blockを使用した例を詳しく解説

高洛峰
リリース: 2017-03-10 11:11:01
オリジナル
2580 人が閲覧しました

この記事では、CSS でのセンタリングに inline-block を使用する例を主に詳しく説明します。使用する場合は、コンテナの幅に注意してください。必要な場合は、

の緊急に必要なメソッドを参照してください。センタリング。基本的なアプローチは、display: inline-block、vertical-align: middle スタイルと擬似要素を使用して、コンテンツ ブロックをコンテナー内の中央に配置することです。私の実装では、いくつかの問題を解決するために、他では見られないいくつかの新しいトリックを使用しています。

宣言されたコンテンツ領域の幅は、コンテナの 100% から 0.25em の幅を引いた値を超えることはできません。長いテキストが含まれるエリアのようなものです。そうしないと、コンテンツ領域が先頭にプッシュされるため、:after 疑似クラスが使用されます。 :before 疑似クラスを使用すると、要素のサイズが 100% になります。
CSSのセンタリングにinline-blockを使用した例を詳しく解説

コンテンツ ブロックができるだけ多くの水平スペースを占める必要がある場合は、大きなコンテナに max-width: 99%; スタイルを追加するか、ブラウザを考慮して max-width: calc(100%) を使用できます。およびコンテナ幅 0.25em) スタイル。

この方法には table-cell とほぼ同じ利点がありますが、ハックに近いため、最初はこの方法を諦めました。それにもかかわらず、ブラウザーのサポートは優れており、この方法は非常に人気があることが証明されています。

HTML:

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

CSS:

.Center-Container.is-Inline {    
  text-align: center;   
  overflow: <span style="width: auto; height: auto; float: none;" id="7_nwp"><a style="text-decoration: none;" mpid="7" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=2d6719abf210fdd5&k=auto&k0=auto&kdi0=0&luki=9&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=d5fd10f2ab19672d&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F3058%2Ehtml&urlid=0" id="7_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">auto</span></a></span>;   
}   

.Center-Container.is-Inline:after,   
.is-Inline .Center-Block {   
  display: inline-<span style="width: auto; height: auto; float: none;" id="8_nwp"><a style="text-decoration: none;" mpid="8" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=2d6719abf210fdd5&k=block&k0=block&kdi0=0&luki=7&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=d5fd10f2ab19672d&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F3058%2Ehtml&urlid=0" id="8_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">block</span></a></span>;   
  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+ */
}
ログイン後にコピー

利点:

可変コンテンツの高さ
コンテンツのオーバーフローにより、親要素の高さを自動的に拡張できます
ブラウザーの互換性が高く、IE7 をサポートするように調整することもできます

で同時に注意:

追加のコンテナが必要です
左マージンに依存します: 水平方向の中央揃えを実現するには -0.25em スタイルであり、異なるフォント サイズに合わせて調整する必要があります
宣言されたコンテンツ領域の幅は 100% を超えることはできませんコンテナの幅から 0.25em を差し引いたもの


以上がCSSのセンタリングにinline-blockを使用した例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート