今天,我在使用border-radius
创建的圆圈元素内垂直居中放置一些小文本时遇到了很多麻烦。在边界半径创建的圆圈内垂直居中文本
一些元素看起来不错,但其中一个(小写字母和太接近底部);我有的padding
它看起来很好;然而,一旦在移动设备上观看,它稍微低一点。
下面是一些代码,尽可能接近副本,因为我可以想出问题;您会注意到此文本与小写字母和太接近底部有类似的问题。
HTML:
<div class="option">
<span class="icon">t</span>
<span class="text">123456789</span>
</div>
<div class="option">
<span class="icon">f</span>
<span class="text">123456789</span>
</div>
<div class="option">
<span class="icon">e</span>
<span class="text"><a href="mailto:[email protected]">[email protected]</a></span>
</div>
CSS:
.option {
margin-bottom: 10px;
font-family: 'Source Sans Pro', sans-serif;
font-size: 14px;
}
.option .icon {
display: inline-block;
text-align: center;
width: 24px;
height: 24px;
line-height: 24px;
color: #fff;
border-radius: 50%;
background-color: blue;
}
.option .text {
padding-left: 10px;
}
的jsfiddle:http://jsfiddle.net/7bygsgn1/7/
虽然我还没有上的jsfiddle特定代码尝试过的时候,我遇到了这个问题一天我尝试的整个范围的中心的技术,包括:
- 使用
line-height
- 使用
absolute
定位 - 结合使用
vertical-align: middle;
与display: table-cell;
- 缘阴性
- 使用方法说明here。
要么它没有影响对中或导致圆的形状改变。
有没有什么办法可以在这种情况下可靠地垂直居中?
我跑了你的第一个建议片段,它看起来不错,但是当我将它添加到我的小提琴的叉子时,* e *仍然太低 - 我错过了什么? http://jsfiddle.net/mn77cz9r/1/ - 至于flex,我需要支持IE9 - 有没有优雅的后备? – Brett
@Brett,你忘了删除行高的属性,这是不再需要和周围的东西:) http://jsfiddle.net/7bygsgn1/11/ –
啊,谢谢! :)我可以问问这是如何工作的吗?如何在图标元素修复对齐之前添加空元素? – Brett