假设我有一个bootstrap按钮,带有一个字体很棒的图标和一些文本:
<div>
<i class='icon icon-2x icon-camera'></i>
hello world
</div>
我如何使文本显示垂直居中? 文本现在与图标的底部边缘对齐:http://jsfiddle.net/V7DLm/1/
假设我有一个bootstrap按钮,带有一个字体很棒的图标和一些文本:
<div>
<i class='icon icon-2x icon-camera'></i>
hello world
</div>
我如何使文本显示垂直居中? 文本现在与图标的底部边缘对齐:http://jsfiddle.net/V7DLm/1/
当前回答
在考虑了所有建议的选项后,最干净的解决方案似乎是设置行高和垂直对齐:
参见Jsfiddle Demo
CSS:
div {
border: 1px solid #ccc;
display: inline-block;
height: 50px;
margin: 60px;
padding: 10px;
}
#text, #ico {
line-height: 50px;
}
#ico {
vertical-align: middle;
}
其他回答
如果没有对齐,一个简单的line-height: inherit;通过CSS在特定的i.a a元素有对齐问题可以做的伎俩足够简单。
你也可以使用全局解决方案,由于CSS的特异性略高,它将覆盖FontAwesome的.fa规则,该规则指定line-height: 1而不需要属性上的!important:
i.fa {
line-height: inherit;
}
只要确保上面的全局解决方案不会在你可能使用fontaweesome图标的地方引起任何其他问题。
微调图标线高的另一个选项是使用垂直对齐属性的百分比。通常,0是底部,100%是顶部,但也可以使用负值或大于100的值来创造有趣的效果。
.my-element i.fa {
vertical-align: 100%; // top
vertical-align: 50%; // middle
vertical-align: 0%; // bottom
}
对于那些使用Bootstrap 4的人来说很简单:
<span class="align-middle"><i class="fas fa-camera"></i></span>
对我来说,只要让元素显示网格,并对齐内容就可以完美地工作。简单的解决方案。
.yourfontawesome<i>Element{
display: grid;
align-content: center;
}
我必须自己做这件事,你需要反过来做。
不要玩弄文字的垂直对齐 玩垂直对齐的字体-真棒的图标
<div>
<span class="icon icon-2x icon-camera" style=" vertical-align: middle;"></span>
<span class="my-text">hello world</span>
</div>
当然,您不能使用内联样式并将其与您自己的css类相匹配。但这是以复制粘贴的方式工作的。
在这里看到的: 按钮中的文本和图标垂直对齐
然而,如果由我来决定,我不会使用icon-2x。并简单地自己指定字体大小,如下所示
<div class='my-fancy-container'>
<span class='my-icon icon-file-text'></span>
<span class='my-text'>Hello World</span>
</div>
.my-icon {
vertical-align: middle;
font-size: 40px;
}
.my-text {
font-family: "Courier-new";
}
.my-fancy-container {
border: 1px solid #ccc;
border-radius: 6px;
display: inline-block;
margin: 60px;
padding: 10px;
}
有关工作示例,请参阅JsFiddle