CSS里的ch到底是什么东西?
ch 应该是一个鲜为人知的计算单位。
ch 是一个相对于数字0的大小。
1ch 就是数字 0 的宽度。
比如定义一个 3ch 宽度的容器,就只能装下3个0。
<style>
div {\
width: 3ch;\
background: powderblue;\
}
</style>
<div>0000</div>

重复一次:1ch 等于一个 0 的宽度!宽度!宽度!
注意,是0的宽度,和0的高度无关。
比如
<style>
div {
width: 6ch;
height: 6ch;
background: powderblue;
}
</style>
<div></div>

可以看到,是一个正方形,因为ch只等于0的宽度。
ch还有另一个规则:
在使用等宽字体的情况下
1ch = 1个英文 = 1个数字 2ch = 1个中文
ch 是一个相对单位,所谓相对,意思是 ch 会根据当前容器的 font-size 变化而变化。
但如果 字体不是等宽字体,这时的ch看起来就不止是一个英文字母的宽度了。
比如
<style>
div {
width: 8ch;
background-color: powderblue;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-size: 50px;
}
</style>
<div>llllllllllllllll</div>

可以看到,16个小写L,并没有超出8ch。
同时,如果容器中的内容是中英文结合的话,用ch做长度单也不是那么好使。
上面用到的几个CSS属性,是用来控制如果内容超出容器,就用省略号显示超出的部分。
最后总结一下:
ch一般很少用得上,因为使用规则可能稍微有点复杂,而且通常需要 js 配合使用。
一般都会用em来代替ch~
相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36