我认为您不需要OR文本的额外元素,您需要的是line-height
属性
演示
div {
height: 50px;
width: 50px;
border: 1px solid #ddd;
border-radius: 50%;
font-weight: bold;
line-height: 50px; /* Equals elements height */
text-align: center;
}
如果您想要vertical-align
单个单词,此解决方案是完美的,如果您想要完美地水平和垂直居中元素,其他两种方法是使用display: table-cell;
或vertical-align: middle;
使用 CSS 定位。
CSS定位方式..
说明:这里position: relative;
在包装器/父元素上使用,而不是为子元素分配position: absolute;
。不过,这是一个问题,您需要为要居中的子元素分配固定宽度。
演示 2
div {
height: 50px;
width: 50px;
border: 1px solid #ddd;
border-radius: 50%;
font-weight: bold;
position: relative;
}
div span {
position: absolute;
border: 1px solid #f00;
left: 50%;
top: 50%;
height: 20px;
width: 24px;
margin-top: -10px; /* Half of the elements height */
margin-left: -12px; /* Half of the elements width */
}