父元素高度:子元素类型与行高的影响
本文分析子元素类型对父元素高度的影响,尤其关注span元素及其line-height属性。
例如下面的代码:
<div class="outerbox1"> 这是外层元素1 </div>
.outerbox1 { width: 600px; line-height: 300px; background-color: thistle; } .outerbox1 span { display: inline-block; /* 将此属性改为block,父元素高度会变化,原因见下文 */ /* display: block; */ background-color: teal; }
代码中,outerbox1是一个div元素,包含一个span元素。outerbox1设置了line-height: 300px,span元素设置了line-height: 50px。当span元素的display属性为inline-block时,父元素outerbox1的高度由其自身的line-height(300px)决定。span元素的line-height: 50px仅影响其内部文本的行高,不会影响父元素高度。
然而,如果将span元素的display属性改为block,情况则不同。块级元素独占一行,高度由内容撑开。此时,父元素高度不再仅由其自身的line-height决定,而是受子元素span的内容高度影响。由于span的line-height为50px,其内容高度受此影响,最终导致父元素高度变化。