この記事では、CSS でのセンタリングに inline-block を使用する例を主に詳しく説明します。使用する場合は、コンテナの幅に注意してください。必要な場合は、
の緊急に必要なメソッドを参照してください。センタリング。基本的なアプローチは、display: inline-block、vertical-align: middle スタイルと擬似要素を使用して、コンテンツ ブロックをコンテナー内の中央に配置することです。私の実装では、いくつかの問題を解決するために、他では見られないいくつかの新しいトリックを使用しています。
宣言されたコンテンツ領域の幅は、コンテナの 100% から 0.25em の幅を引いた値を超えることはできません。長いテキストが含まれるエリアのようなものです。そうしないと、コンテンツ領域が先頭にプッシュされるため、:after 疑似クラスが使用されます。 :before 疑似クラスを使用すると、要素のサイズが 100% になります。
コンテンツ ブロックができるだけ多くの水平スペースを占める必要がある場合は、大きなコンテナに 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: ''; 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 サイトの他の関連記事を参照してください。