ch应该是一个鲜为人知的计算单位。
ch是一个相对于数字0的大小。
1ch 就是数字 0 的宽度。
比如定义一个3ch的宽度,那么久只能装下3个0。
重复一次:1ch 等于一个 0 的 宽度!宽度!宽度!
注意,是0的宽度,和0的高度无关。
比如
可以看到,是一个正方形,因为ch只等于0的宽度。
ch还有另一个规则:
ch 是一个相对单位,所谓相对,意思是 ch 会根据当前容器的 ****font-size**** 变化而变化。
如果字体不是等宽字体,这时的ch看起来就不止是一个英文字母的宽度了。
比如
可以看到,16个小写L,并没有超出8ch。
同时,如果容器中的内容是中英文结合的话,用ch做长度单也不是那么好使。
上面用到的几个CSS属性,是用来控制如果内容超出容器,就用省略号显示超出的部分。 【CSS】省略号
ch一般很少用得上,因为使用规则可能稍微有点复杂,而且通常需要 js 配合使用。
一般都会用em来代替ch~
rem是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。
示例:
div { font-size : 1.2em}
rem与px的换算
1rem=16px, 12px=0.75rem
如果将rem换算后html{font-size:62.5%},1rem=10px.
首先,rem是以html为基准。
一般的,各大主流浏览器的font-size默认值为16px,此时1rem=16px。如果此时将rem与px进行换算很麻烦,比如0.75rem=12px。
为了更方便的进行换算(比如1:10),就可以加样式:
16px*0.625 = 10px
设置了62.5%以后就有 1rem=10px,便于用rem指定元素的尺寸(比如1.2rem=12px,1.4rem=14px),这样响应式的时候就可以直接改变font-size而无需计算其他各种样式中出现的尺寸了。
用rem定义尺寸的另一个好处是更能适应 缩放/浏览。