Fra*_*ste 54 html css fonts font-awesome
我有一个非常基本的HTML混合纯文本和图标字体:
<div class="ui menu">
<a href="t" class="item"><i class="large home basic icon"></i><span class="nav-text"> Accueil</span></a>
<a href="" class="item"><i class="large camera retro icon"></i><span class="nav-text"> Créations</span></a>
<a class="item"><span class="nav-text">Qui-suis je </span><i class="large help basic icon"></i></a>
</div>
Run Code Online (Sandbox Code Playgroud)
问题是图标没有完全呈现在与文本相同的高度:

有什么建议可以解决吗?
Jos*_*ier 51
您可以添加vertical-align:middle到span元素:
.nav-text {
vertical-align:middle;
}
Run Code Online (Sandbox Code Playgroud)
sam*_*sam 37
这里已经有一些答案,但我发现flexbox是最干净,最不"hacky"的解决方案:
parent-element {
display: flex;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
要支持Safari <8,Firefox <21和Internet Explorer <10(使用此polyfill支持IE8 + 9),您需要供应商前缀:
parent-element {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
get*_*bro 21
vertical-align 可以采用单位价值,以便您在需要时可以使用它:
{
display:inline-block;
vertical-align: 5px;
}
{
display:inline-block;
vertical-align: -5px;
}
Run Code Online (Sandbox Code Playgroud)
扩展Marian Udrea的答案:在我的场景中,我试图将文本与材质图标对齐。材质图标有一些奇怪的地方,导致它无法对齐。vertical-align直到我将 添加到图标元素而不是父元素之前,所有答案都不起作用。
因此,如果图标的24px高度为:
.parent {
line-height: 24px; // Same as icon height
i.material-icons { // Only if you're using material icons
display: inline-flex;
vertical-align: top;
}
}
Run Code Online (Sandbox Code Playgroud)
将其添加到您的CSS:
.menu i.large.icon,
.menu i.large.basic.icon {
vertical-align:baseline;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
设置line-height图片的垂直尺寸,然后vertical-align:middle像乔什说的那样。
所以如果图片是20px,你就会有
{
line-height:20px;
font-size:14px;
vertical-align:middle;
}
Run Code Online (Sandbox Code Playgroud)