更新(问题解决)理解直列elemnt,垂直对齐,线箱和行高
垂直对齐:底部,指底部直列箱其线箱的底部相匹配,所以在我的情况下,span2的内联框是绿色的,它的行高是100px,从父项继承。它的行箱是黑色的,也有行高:100px。所以他们是底部对齐。 看到图:
我已经了解到:
1.立式对齐仅适用于在线/ inline-block的元素
2.vertical对齐是基于行高,而不是其容器的高度!
3.在一个线框中,它的line-height是行高最高的内联框的行高(在我看来,它是inline-element或inline-block元素)。像图:
一切工作inline-block的元素很好,但它似乎有与内嵌式元件的问题。
解释:
父:高度:200像素,行高; 100像素;
div.child:inline-block,vertical-align bottom;
SPAN1:直列,行高:直列,行高:从母体,它是100像素
跨距2继承底部:从母体,它是100像素,垂直对齐继承。
对我来说,行框下面的代码是这样的(你可以先运行代码):
为跨距2奇怪的行为!如果将垂直对齐设置为文本顶部或文本底部,则会变得更加奇怪
另一件我感兴趣的事情是,如果我将跨度显示设置为内嵌块或设置跨度的行高到正常(这是它的字体大小的1.16),一切工作正常。
有人能解释吗?由于
div.parent {
width: 300px;
background-color: coral;
/*key-part*/
height: 200px;
line-height: 100px;
}
div.child {
width: 50px;
height: 50px;
background-color: yellow;
/*key-part*/
display: inline-block;
vertical-align: bottom;
line-height: normal;
}
.span1 {
background-color: white;
font-size: 50px;
/*key-part*/
vertical-align: middle;
}
.span2 {
background-color: green;
font-size: 12px;
/*key-part*/
vertical-align: top;
}
<body>
<div class="parent">
<div class="child">inline-block div</div>
<span class="span1">Text1</span>
<span class="span2">Text2</span>
</div>
</body>
答案没有提到的一个问题是“将跨度的行高设置为正常(它是其字体大小的1.16)”,这并非总是如此。根据[MDN](https://developer.mozilla.org/en/docs/Web/CSS/line-height)的说法,大多数浏览器的字体大小约为1.2,然后围绕整个像素,但取决于字体。 #Values)。 –