CSS里的ch到底是什么东西?

100人浏览   2024-11-11 10:18:34

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~






相关推荐