我正在读一本关于 CSS 的书,这让我很困惑。我想将文本垂直居中,这是我的代码:
img {
vertical-align: middle;
}
#mySpan {
background-color: red;
}
/* this works fine but when I type the code I first tried */
#mySpan {
background-color: red;
vertical-align: middle;
}
<p>
<img src="zemin.jpg" alt="Zemin">
<span id="mySpan">Align Vertically</span>
</p>
这行不通。你能解释一下吗?为什么将 align
设置为另一个元素有效,但直接将其设置为一个元素却不行?
最佳答案
此属性是关于在文本中对齐图像(内联 block )的。它确定元素在文本流中的定位方式。在文本流中对齐文本没有多大意义,因为它是文本流。
如果您将其设置为 inline-block
,则可以将垂直对齐应用于跨度,但我怀疑这是否是您喜欢的行为。一些例子可以在下面找到:
p {
background-color: #ffdddd;
line-height: 2em;
}
.mySpan {
background-color: red;
vertical-align: middle;
height: 1em;
display: inline-block;
}
.mySpan.top {
vertical-align: top;
height: 3em;
}
img {
vertical-align: middle;
}
#mySpan {
background-color: red;
}
<p>
<img src="zemin.jpg" alt="Zemin">Normal text flow. <span class="mySpan">Align middle</span>. <span class="mySpan top">Align top.</span>Continuation of normal text flow
</p>
关于html - 垂直对齐不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391020/