【发布时间】:2021-07-28 02:20:26
【问题描述】:
由于某种原因,vertical-align: middle 上的 span 不起作用。
.tc__timezone-toggle {
display: flex;
}
.tc__timezone-toggle span {
vertical-align: middle;
}
.tc__timezone-toggle-ui {
display: block;
font-weight: 700;
color: var(--tc-blue) !important;
background-color: #E3E3E3;
padding: 10px;
}
a.tc__timezone-toggle-ui {
border-radius: 22px 0px 0px 22px;
}
.tc__timezone-toggle-ui:last-child {
border-radius: 0px 22px 22px 0px;
}
<div class="tc__timezone-toggle">
<span>TimeZone</span>
<a class="tc__timezone-toggle-ui" href="#">PT</a>
<a class="tc__timezone-toggle-ui" href="#">ET</a>
</div>
https://developer.mozilla.org/en-US/docs/Web/CSS/vertical-align
vertical-alignCSS 属性设置内联、内联块或表格单元框的垂直对齐方式。
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span
spanHTML 元素是一个通用的内联容器,用于表达内容,它本身并不代表任何东西。
所以vertical-align 用于内联元素。 span 是内联的。
为什么它不起作用?
Vertical align middle not working in span element
您可以使用
display: flex来实现此目的。
我的容器是弹性的。
怎么了?
【问题讨论】:
-
在您的链接答案中,您会看到解决方案,使用
display: flex,您可以使用justify-content和align-items属性来设置孩子的对齐方式 -
“所以垂直对齐适用于内联元素。span 是内联的。” 当它是 flex 容器的子容器时,它不是!
-
如果您想特别对齐,也可以在
<span>上使用align-self: center。 -
@MichaelBenjamin 谢谢你...