我试图将这个文字字符center置于一个圆圈内。 (☢)
虽然IE 10以垂直和水平居中的方式显示文本,但Chrome和Firefox在顶部渲染过多的填充。
任何想法如何解决这个问题? (Flexbox不是必须的)
HTML
<div class="tl-icon">
<div>☢</div>
</div>
CSS
.tl-icon {
align-items: center;
background: black;
border-radius: 50%;
color: yellow;
display: flex;
font-size: 3em;
height: 3rem;
justify-content: center;
width: 3rem;
}
点击此处观看现场演示:http://codepen.io/dash/pen/ZYePWP
答案 0 :(得分:2)
问题在于内在的孩子是一个与你的身高相关的文本。
我添加了一个line-height
,似乎有点修复它:
.tl-icon div{
line-height:1px;
}
答案 1 :(得分:0)
定位该子div,将其设置为inline-block
并更改垂直对齐:
.tl-icon div{
display: inline-block;
vertical-align: top;
}
答案 2 :(得分:0)
我不得不放弃尺寸,但这应该垂直和水平居中,到目前为止在Chrome,FF和Safari中测试过。
http://codepen.io/anon/pen/gbmEWX
将父级设置为
display:table;
孩子到
display:table-cell;
vertical-align:middle;
text-align:center;
答案 3 :(得分:0)
您已经使用flexbox CSS正确完成了所有操作。
问题似乎与line-height
有关。您正在使用html实体作为文本,看起来.tl-icon
继承了行高不正常的值。
尝试调整line-height
,并使用无单位值。这样,行高将计算为内部元素的字体大小。
.tl-icon {
line-height:.9;
}