先说下为什么line-height等于元素高度文字却没有垂直居中,其实line-height等于元素高度的时候文本并不是真的居中了,而是看着居中了,当元素高度和font-size差距较大的时候,这种不是真正的居中就越发的明显,这里可以参看下什么是基线?
下图中的绿色线就是基线:line-height,指的是两行文字【基线】之间的距离
解决方案一、
结合行高、对齐的关系并结合伪元素
.text{ width: 16px; height: 16px; font-size: 10px; text-align: center; } .text::after{ content: ' '; display: inline-block; width: 0; height: 100%; vertical-align: middle; margin-top: 1px; }
解决方案二、
使用CSS3 scale属性,设置时将所有的值设置大一倍,然后缩小一倍
.text{ width: 32px; height: 32px; line-height: 32px; font-size: 20px; text-align: center; transform: scale(0.5); }