CSS3 インラインブロックの落とし穴について
レイアウトに関しては、flex や float を使用する人が多いかもしれません。 flex は非常に強力であることは間違いありませんが、float は互換性があまり高くないように感じます。フローティングは非常に面倒なので、segmentfault などの一部の大きな Web サイトのホームページのナビゲーション表示のレイアウトとして inline-block を使用していましたが、あることに気づきました。いくつかの小さな問題もあります。 まず最初にコードを公開します
<p style="background-color:green"> <p style="width:40px;height:30px;background-color:red;"> </p> <p style="width:40px;height:30px;background-color:red;"> </p> <p style="width:40px;height:30px;background-color:red;"> </p> </p>
この時点でレイアウトに inline-block を使用すると、何か魔法のことが起こります
<p style="background-color:green;"> <p style="width:40px;height:30px;background-color:red;display:inline-block;"> </p> <p style="width:40px;height:30px;background-color:red;display:inline-block;"> </p> <p style="width:40px;height:30px;background-color:red;display:inline-block;"> </p> </p>
元の 3 つの P が並んでいます。インライン要素があるので横に並べる必要がありますが...
ここで 2 つの問題があります:
の間にギャップがあります子 p と親 p の間の 4px 間隔
ここでこの問題が発生する理由は、改行またはスペースで区切って表示される場合、インラインブロックで水平方向に表示される要素間に間隔があるためです
p 間の間隔の解決策
ここで試した 1 つの方法は、margin-right を負の値に設定することです。
<p style="background-color:green"> <p style="width:40px;height:30px;background-color:red;display:inline-block;margin-bottom:-4px;margin-right:-4px"> </p> <p style="width:40px;height:30px;background-color:red;display:inline-block;margin-bottom:-4px;margin-right:-4px"> </p> <p style="width:40px;height:30px;background-color:red;display:inline-block;margin-bottom:-4px;margin-right:-4px"> </p> </p>
ここでは、最初の p と 2 番目の p がまだ 1px であることがわかります。ギャップ、そして 2 番目の p 1 番目と 3 番目の p の間に距離はなく、子 p と親 p の間にも距離はありません。これは、問題がここにないことを示しています
マスターのブログを参照しましたZhang Xuxin と私は、この方法が最高であることに深く感銘を受けました:
これを親 p に追加します。 CSS 属性
font-size:0 -webkit-text-size-adjust:none;
po コード
<p style="background-color:green;font-size:0;-webkit-text-size-adjust:none;"> <p style="width:40px;height:30px;background-color:red;display:inline-block;"> </p> <p style="width:40px;height:30px;background-color:red;display:inline-block;"> </p> <p style="width:40px;height:30px;background-color:red;display:inline-block;"> </p>
それから、別の質問があります。-webkit-text とは何ですか-size-adjust????
Webkit カーネルを搭載したブラウザ (Chrome) では、CSS で定義された中国語のフォント サイズが 12px 未満の場合でも、ブラウザは -webkit- を使用できます。 text-size-adjust:none;
はは、このようにして問題は解決されました
最後に、inline-block の互換性について話しましょう: この記事を参照してください
-->
IE6 と IE7 は認識しませんinline-block ですが、ブロック要素をトリガーできます。他の主流ブラウザはインラインブロックをサポートしています。これで十分です。IE6 と 7 は考慮されません。理由はわかります...
関連する推奨事項:
要素を 1 行に配置する場合の CSS の display:inline-block と float の違い
css : block、inline、inline-blockの使い方と違い
display:inline-block;layoutによって生じるギャップを解決するCSSメソッド
以上がCSS3 インラインブロックの落とし穴についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











純粋な CSS3 で波の効果を実現するにはどうすればよいですか?この記事ではSVGとCSSアニメーションを使って波のエフェクトを作成する方法をご紹介しますので、お役に立てれば幸いです。

この記事では、頻繁に登場する様々な奇妙な形のボタンをCSSを使って簡単に実現する方法を紹介しますので、ぜひ参考にしてください。

2 つの方法: 1. display 属性を使用して、要素に「display:none;」スタイルを追加するだけです。 2. Position 属性と top 属性を使用して、要素の絶対位置を設定し、要素を非表示にします。要素に「position:absolute;top:-9999px;」スタイルを追加するだけです。

CSS では、border-image 属性を使用してレースの境界線を実現できます。 border-image 属性では、画像を使用して境界線を作成できます。つまり、境界線に背景画像を追加できます。背景画像をレース スタイルとして指定するだけで済みます。構文「border-image: url (画像パス) は、内側への画像境界線の幅。開始を繰り返すかどうか;"。

実装方法: 1. ":active" セレクターを使用して、画像上のマウス クリックの状態を選択します; 2. 変換属性とscale() 関数を使用して、画像の拡大効果を実現します。構文 "img:active {transform : スケール(x 軸倍率、y 軸倍率);}"。

テキストカルーセルと画像カルーセルを作成するにはどうすればよいですか?皆さんが最初に考えるのはjsを使うかどうかですが、実はテキストカルーセルや画像カルーセルも純粋なCSSでも実現できますので実装方法を見ていきましょう。

CSS3 では、「animation-timing-function」属性を使用してアニメーションの回転速度を設定できます。この属性は、アニメーションがサイクルを完了する方法を指定し、アニメーションの速度曲線を設定するために使用されます。構文は「element {アニメーションタイミング関数: 速度属性値;}"。

css3 のアニメーション効果には変形があり、「animation: アニメーション属性 @keyframes ..{..{transform: 変換属性}}」を使用して変形アニメーション効果を実現できます。アニメーション属性はアニメーション スタイルを設定するために使用され、変形スタイルを設定するには、transform 属性を使用します。
