font-size:0px での奇妙な動作
怪我咯
怪我咯 2017-05-19 10:18:44
0
2
809

p には 2 つの要素 img span があります。

###1。 p に font-size:0px

を設定します リーリー

car1.html として保存、実行結果は 0.

###2。 p の 2 つの子要素に font-size:0px

を設定します。 リーリー

それを car2.html として保存すると、実行結果は 6px になります。

すみません、この動作はどう説明すればよいでしょうか?

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(2)
巴扎黑

これは img タグの font-size の影響です。 img 要素を囲む外側のレイヤーの p font-size が大きくなるほど、下マージンも大きくなります。インライン要素として、span は img ほど大きくないため、無視できます。 e1 と e2 の高さの差は、img と p の間のスペースです。 (もちろん、境界線をコメントアウトする必要があります。p font-size:0 の場合にのみ、e1-e2 が 0 に等しくなります)。

いいねを押す +0
淡淡烟草味

1 つ指摘してください: ケース 1 は 2 であるべきです

3 つのポイント:
1.p の高さは line-height でサポートされています。 line-height撑起。
2.默认情况下,line-heightnormal(1.1-1.2由浏览器决定),又是由font-size决定
3.offsetHeight还包括border2. デフォルトでは、line-heightnormal (1.1 ~ 1.2 はブラウザによって決定されます) であり、font-size によって決まります。

3.offsetHeight には border も含まれます


それでは、見てみましょう: p设置font-size:0;此时,span继承font-size:0,但border上下和2px,所以,poffsetHeight=内容高度+border,内容高度=imgoffsetHeight+span的2px,所以e1.offsetHeight-e2.offsetHeight=2才对
情况2:在子元素上分别设置font-size:0;imgspan的情况和上述一样,但是pfont-size默认为16px;line-height ケース 1: この時点で、親要素 pfont-size:0 を設定すると、span が継承されます。 font-size:0 ですが、border の上下は 2 ピクセルなので、poffsetHeight = コンテンツの高さになります。 + border、content height=imgoffsetHeight + span の 2px、つまり e1. offsetHeight-e2.offsetHeight= 2 は正しいです

ケース 2: 子に font-size:0span を設定します。上記と同じですが、pfont-size はデフォルトで 16px になります。 > 値はブラウザによって決定されるため、コンテンツの高さが変更され、最終的な値はブラウザによって決定されます。 🎜
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート