2017-09-20 11 views
4

サンプルコード:なぜこのインラインブロックは親の余分な高さを引き起こしますか?このような

.c1 { 
    width: 480px; 
    height: 480px; 
    background-color: blue; 
} 

.c2 { 
    width: 100%; 
    background-color: red; 
} 

.c3 { 
    display: inline-block; 
    margin-top: 0; 
} 

<div class="c1"> 
    <div class="c2"> 
    <div class="c3"> 
    </div> 
    </div> 
</div> 

なぜdiv.c2が表示されていますか? c3がdisplayの場合、インラインブロック以外は存在しません。

また、このcodepanを参照してください。https://codepen.io/uuhan/pen/ZXWodw

UPDATE:

私は行の高さを追加:0 C2に、そして薄くなるdiv.c2。しかし、どのようにしてこの高さ(6px、起源は22px)のc2を指摘することができますか? https://codepen.io/uuhan/pen/EwKRLK

答えて

4

C2は、少なくともテキストの1行と高いため、/高さを有して存在する:

また、このcodepan参照。あなたはそれにfont-size: 0;を追加した場合、それは高さ0

https://codepen.io/anon/pen/RLaJLj

+0

を持っているので、それが消えて、それを手に入れました。これは、インラインブロックに常に1行が含まれていることを意味しますか? – uuhan

+0

さて、あなたはfont-size(https://codepen.io/anon/pen/RLaJMx)の代わりに 'height:0'を設定することもできますが、もしどちらかをしなければ、それは1行のテキスト。 – Johannes

+0

line-height:0をc2クラスに追加すると、高さが薄くなります。この高さ(6px、原点高さ、22px)がどのように計算されるのだろうか? – uuhan

関連する問題