我在垂直对齐元素时遇到了一些问题,如图所示:
也就是说,当font-variant: smallcaps
生效时,包含文本的跨度不再“居中”,旁边有图标,由于图标的大小由字体大小决定,“字体”越大,这一点就越明显。
我尝试将 span 转换为一个display:block
元素,但无法让它使用vertical-align: middle
,我尝试将它转换为display: flex
并使用align-items: center
. 没有成功,似乎只有显示器“脱节”,而内部文本大小合适。你会如何解决这个问题?
小提琴:https ://jsfiddle.net/1nzhgymf/
.menu-item {
display: flex;
flex-flow: row nowrap;
justify-content: flex-start;
align-items: center;
overflow: hidden;
width: 100%;
height: 2.8em;
color: inherit;
text-decoration: none;
text-transform: uppercase;
font-family: Roboto;
font-size: 20px;
flex-grow: 0;
flex-shrink: 0;
padding: 0.4em;
}
.icon {
min-width: 1em;
min-height: 1em;
background: red;
margin-right: 0.4em;
}
<div>
<a class="menu-item">
<div class="icon"></div>
<span>Example</span>
</a>
<a class="menu-item" style="font-variant: all-small-caps">
<div class="icon"></div>
<span>Example</span>
</a>
</div>