Tmiracle
用爱学IT,用心写BUG
OPEN BLOG ->

目录

这是什么?
前端
概念
HTML
CSS
Flex 布局
谈谈你对BFC的理解
drop-shadow属性的使用
修改滚动条样式
文本多行自动省略号
font-synthesis属性导致中文斜体不生效的问题
设置letter-spacing后文本无法居中的问题
JavaScript
Vue
HTTP
微信小程序
uni-app
Android
Webpack
后端
Java
数据库
MySQL
部署
Docker
版本控制
Git
NPM
编辑器
IntelliJ IDEA
HBuilder X

设置letter-spacing后文本无法居中的问题

问题描述

假设我们有一段文本,在盒子内居中,示例:

html
<div style="width: 240px; text-align: center; border: 1px solid black;">
    <span style="background-color: yellowgreen;">这是一段文本</span>
</div>
这是一段文本

如果我们给文本添加一些字间距:

html
<div style="width: 240px; text-align: center; border: 1px solid black;">
    <span style="background-color: yellowgreen; letter-spacing: 4px;">这是一段文本</span>
</div>
这是一段文本

可以发现,实际上最后一个字后面也有一段空白间距,这导致文本无法在盒子内无法正常居中:

解决方式

可以使用 text-indent 来设置一个往右的缩进:

html
<div style="width: 240px; text-align: center; border: 1px solid black; text-indent: 4px;">
    <span style="background-color: yellowgreen; letter-spacing: 4px;">这是一段文本</span>
</div>
这是一段文本

眼睛可能看不出区别,但实际上,text-indent 给文本前面设置了一段 4px 的缩进,这个可以使用浏览器控制台查看。

最后更新于:
大佬~留个评论吧~