我有一个非常基本的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>
问题是图标are not exactly rendered at the same height than the text:
有任何修复建议吗?
答案 0 :(得分:46)
答案 1 :(得分:28)
这里已经有一些答案,但我发现flexbox是最干净,最不“hacky”的解决方案:
parent-element {
display: flex;
align-items: center;
}
支持Safari&lt; 8,Firefox&lt; 21和Internet Explorer&lt; 10(使用this polyfill支持IE8 + 9)您需要供应商前缀:
parent-element {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
答案 2 :(得分:18)
vertical-align
可以获取单位价值,以便您在需要时可以使用该值:
{
display:inline-block;
vertical-align: 5px;
}
{
display:inline-block;
vertical-align: -5px;
}
答案 3 :(得分:5)
答案 4 :(得分:3)
垂直和水平居中使用:
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
答案 5 :(得分:2)
将line-height
设置为图片的垂直尺寸,然后像Josh所说的那样vertical-align:middle
。
所以如果图片是20px
,你就会有
{
line-height:20px;
font-size:14px;
vertical-align:middle;
}
答案 6 :(得分:0)
您可以使用此属性:vertical-align:middle;
.selector-class {
float:left;
vertical-align:middle;
}
答案 7 :(得分:0)
添加范围
if isinstance(foo, basestring):
foo = (foo,) # turn it into an iterable (tuple)
# or, doStuff(foo) followed by a return or break
try:
for x in foo:
doStuff(str(x)) # do something with each element
except TypeError: # TypeError: 'some' object is not iterable
doStuff(str(foo))
没有为我工作但是
vertical-align:baseline;
确实有效(在Chrome上测试)
答案 8 :(得分:0)
使用CSS网格
HTML
<div class="container">
<i class="fab fa-5x fa-file"></i>
<span>text</span>
</div>
CSS
.container {
display: grid;
grid-template-columns: 1fr auto;
align-items: center;
}
答案 9 :(得分:0)
扩展Marian Udrea的答案:
在我的方案中,我试图使文字与实物图标对齐。材质图标有些奇怪,无法对齐。在我将vertical-align
而不是父元素添加到icon元素之前,没有任何答案有效。
因此,如果图标的高度为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;
}
}