这是我参与新手入门的第3篇文章。
css会有什么单位呢?
平时工作中,经常用到的单位就是PX,REM,EM,%这些,其实CSS的单位还有很多种呢,而且大部分单位我们可能都没有听过,或者听过没有使用过。
CSS的单位长度有两种,分为绝对长度和相对长度:
绝对长度
绝对长度单位是固定的,用任何一个绝对长度表示的长度都将恰好显示为这个尺寸。
cm 厘米
mm 毫米
in 英寸 (1in = 96px = 2.54cm)
px 像素 (1px = 1/96th of 1in)
pt 点 (1pt = 1/72 of 1in)
pc 派卡 (1pc = 12 pt)
不建议在屏幕上使用绝对长度单位,因为屏幕尺寸变化很大。比如用了20CM,不管是大手机,还是小手机,还是在电脑屏幕上面,显示的大小,全部都是20CM。这显然不符合终端适配操作,这会让小屏幕的手机上的元素看起来会异常的不协调。
但是,如果已知输出介质,则可以使用它们,例如用于打印布局,经常会用到PT这个单位。在Word或Photoshop中,使用pt就相当方便。因为使用Word和Photoshop的主要目的是输出打印。当打印到实体时,pt作为一个绝对长度单位就能固定显示:比如Word的文档中,文章用“宋体 9pt”,标题等“黑体 16pt”,这时电脑怎么设置,但是文件打印出来,显示的文字就是这么大。又或者在Photoshop中,设置一个图片中的某个艺术效果的字体是72pt大小,那打印出来的,也就是这么大。
所以,什么时候使用这个绝对单位,就非常明了了。
相对长度
相对长度单位规定相对于另一个长度属性的长度。相对长度单位在不同渲染介质之间缩放表现得更好。
em 相对于元素的字体大小(font-size)(2em 表示当前字体大小的 2 倍)
ex 相对于当前字体的 x-height(极少使用)
ch 相对于 "0"(零)的宽度
rem 相对于根元素的字体大小(font-size)
vw 相对于视口宽度的 1%
vh 相对于视口高度的 1%
vmin 相对于视口较小尺寸的 1%
vmax 相对于视口较大尺寸的 1%
% 相对于父元素
现在的屏幕,大小各式各样的,如果想要页面做的能够适应大部分的屏幕,就需要选择合适的单位。上面这些相对长度单位,可以很灵活的,互相交叉的使用。
比如在做页面整体布局的时候,我经常会用到%,让大小不一的屏幕,都能根据%来调整。元素宽度可以互相根据父元素的宽高来自适应,避免布局错乱的情况出现。
在做布局的时候,还可以做一些长度计算。比如:
width: calc(100%vw - 10px),表示宽度是视口宽度减去10px
height: calc(100vh - 20px),表示高度是视口高度减去20px
这就很方便,不用头疼的考虑改用多少宽度 高度 才能让页面不出现多余的空间,或者没有填满相应的空间。
以前在面试的时候,面试官问我em和rem的区别是什么,我那时对这些单位真的没啥概念,后来查了一下,才明白,rem是相对根节点的font-size,em是相对父节点的font-size。利用这个单位,可以进行移动端字体大小的适配了,就能很好的避免,大屏幕字体太小,或者小屏幕字体太大的情况出现了。
vmin和vmax 这两个单位还挺有意思的,比如在PC端屏幕,vmin指的是高度的1%,wmax指的是宽度的1%,但是如果是手机屏幕,vmin指的就是宽度的1%,而wmax指的是高度的1%了。是不是很有趣?
ex这个单位吧,我还真没用到过,看解释,也没看明白在实际情况中能用来干嘛,总之看懂后面括号里写的,极少用到就行了。
有次看到一个CSS特效,模仿屏幕打字,字符一个个敲出来的效果,然后看CSS里面用到的就是CH这个单位,一个单词13个字母,让这个标签的宽度从1ch逐渐增加到13ch。特效做的很逼真。刚找了一下这个文章,写的非常棒的!快来点开看一看吧
以上只是简单讲解了一些单位的基本使用情况,该怎么利用这些不同的单位,实践才能出真知哦~~