letter-spacing文字不居中的问题的解决方式
有时,为了设计美观的关系, 需要字体留一定空隙, 使用css属性letter-spacing, 如下代码:
<div style="text-align: center;">
<div style="font-size: 88px;color: #f7517f;">loading</div>
<div style="font-size: 28px;letter-spacing:45px;color:#806d92">呐喊Pro</div>
</div>
显示效果如下:
loading
呐喊Pro
然而, 却会发现, 下面的文字和上面的没有letter-spacing的文字对不齐.
用鼠标选择下面的文字, 你会发现letter-spacing的45px空间是加在每一个字符后面的, 这样字符都会靠左一点点.
怎么解决呢? 有的网友建议在前面加空格, 当然是转义的空格了:
代码改为:
<div style="text-align: center;">
<div style="font-size: 88px;color: #f7517f;">loading</div>
<div style="font-size: 28px;letter-spacing:45px;color:#806d92"> 呐喊Pro</div>
</div>
显示效果如下:
loading
呐喊Pro
然而加上空格你又会发现,由于空格还是占用了空间, 整体字符又会靠右一点点...
css的问题还是要回到css的方法上解决, 正确的姿势之一是增加text-indent, 如下:
<div style="text-align: center;">
<div style="font-size: 88px;color: #f7517f;">loading</div>
<div style="font-size: 28px;letter-spacing:45px;text-indent: 45px;color:#806d92">呐喊Pro</div>
</div>
显示效果如下:
loading
呐喊Pro
除了text-indent方案以外,应该还可以使用padding-left. 不过, 能在text的css属性内解决的, 就不要放到box的属性去解决, 所以text-indent的方式要更优雅一些吧