CSS里面的长度单位px/pt/em/in/pc/mm/cm解释

主宰稳场 提交于 2020-01-23 06:26:05

在CSS中,度量单位分为两种:


相对单位:px/em/ex
绝对单位:cm/pt/in/pc/mm

这些单位的具体解释

px
相对长度单位。像素(Pixel)。
像素是相对于显示器屏幕分辨率而言的。譬如,WONDOWS的用户所使用的分辨率一般是96像素/英寸。而MAC的用户所使用的分辨率一般是72像素/英寸。

em
相对长度单位。相对于当前对象内文本的字体尺寸。
如当前行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。

ex
相对长度单位。相对于字符“x”的高度。此高度通常为字体尺寸的一半。
如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。

pt
绝对长度单位。点(Point)。
1in = 2.54cm = 25.4 mm = 72pt = 6pc

pc
绝对长度单位。派卡(Pica)。相当于我国新四号铅字的尺寸。
1in = 2.54cm = 25.4 mm = 72pt = 6pc

in
绝对长度单位。英寸(Inch)。
1in = 2.54cm = 25.4 mm = 72pt = 6pc

mm
绝对长度单位。毫米(Millimeter)。
1in = 2.54cm = 25.4 mm = 72pt = 6pc


cm
绝对长度单位。厘米(Centimeter)。
1in = 2.54cm = 25.4 mm = 72pt = 6pc

究竟有什么区别呢?

    首先要明白一点,那就是屏幕分辨率。我们知道,在不同的分辨率下,像素点的大小是不同的。所以同一个网页,以px作长度单位时,在不同的分辨率下显示的大小是不同的。在低分辨率下,像素点较大,细节不够清晰,显示的页面也大,但模糊不清。

    实际上,所有的单位,无论是相对还是绝对单位,最终都是转化为px为单位的---在屏幕上的显示。所以一般来说,在网页制作时,基本单位都选择px而不是pt,因为pt也是通过浏览器的DPI转换成px显示(比如FireFox的DPI是96,则有9pt = 12px)。不仅pt,cm/in/mm等都是转换成px的。所以无论用绝对还是相对,在不同分辨率下都是会变的。不要以为我把长度设置为3cm,它就会在不同的分辨率下保持3cm不变。

那又为什么出现绝对单位和相对单位呢?

    我觉得pt还是很有用的一个单位,在打印时尤其如此。现在有的网页已经实现了显示是一个页面,打印用另一种方式,我想在打印上采用的就是pt吧,因为针对不同的分辨率,打印出来的页面都是一样的大小。这就是绝对单位的第一个特征。但是依然要记住,在显示上,这个单位代表的不是真实的物理长度,它也是要根据像素的实际大小(这个跟分辨率有关)进行调整的。

   那么绝对单位和相对单位是什么回事?首先可以了解下%单位。我们在学习导航栏的制作时,有过了解"一列宽度自适应"的布局手法。那里面将div容器的width属性设置为80%,用的就是相对单位---相对浏览器窗口的大小,div块的宽度是80%。

   实际上我们可以这样理解,将px看做绝对单位---显示上的绝对单位。其他的相对单位都是以它为基础的。比如em,它就是相对当前文本字体的高度(假设当前文本字体的尺寸是 12px, 我们设置新的字体为1.5em,则新字体尺寸转换为 12 * 1.5 = 18px)。要记住的就是em是相对父级元素的高度---假设第一个div里面我们设置了字体是12px,第二级我们设置为1.5em,第三级设置为1.5em,实际上字体的显示是:第一级12px,第二级18px,第三级 18 * 1.5 = 27px。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!