html - 垂直对齐不能正常工作

标签 html css

我正在读一本关于 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 )的。它确定元素在文本流中的定位方式。在文本流中对齐文本没有多大意义,因为它是文本流。

另见 vertical-align

如果您将其设置为 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/

相关文章:

html - 如何使用 CSS 设置复选框样式

javascript - 跳转到网页部分时暂时突出显示 html 元素

html - CSS Grid - 在自动流列上自动生成新的行中断

javascript - 使用 JavaScript 预加载器

html - CSS 继承 : ul style not applied to nested div

javascript - 如何在选择下拉列表后添加禁用验证

jquery - 文本在新的 Bootstrap 轮播幻灯片上淡入/淡出

javascript - 使用 "Collision"接近边距时翻转工具提示

javascript - 延迟更改样式

css - 是全局定义位置:relative to page container a good practice?