当前位置:   article > 正文

CSS 单位

CSS 单位

文章の目录

CSS 单位

绝对长度单位

绝对长度单位

相对长度单位

相对长度单位

px、em、rem 的区别

px

px 特点

em

em 特点

使用

rem

使用


正文

CSS 单位

CSS 有几种表示长度的不同单位。

许多 CSS 属性接受“长度”值,诸如 width、margin、padding、font-size 等。

长度是一个后面跟着长度单位的数字,诸如 10px、2em 等。

注:

  • 数字和单位之间不能出现空格。但是,如果值为 0,则可以省略单位。
  • 对于某些 CSS 属性,允许使用负的长度。
  • 长度单位有两种类型:绝对单位和相对单位。

绝对长度单位

绝对长度单位是固定的,用任何一个绝对长度表示的长度都将恰好显示为这个尺寸。

不建议在屏幕上使用绝对长度单位,因为屏幕尺寸变化很大。但是,如果已知输出介质,则可以使用它们,例如用于打印布局(print layout)。

绝对长度单位

  • cm —— 厘米
  • nm —— 毫米
  • in —— 英寸(1in = 96px = 2.54cm)
  • px —— 像素(1px = 1/96th of 1in)
  • pt —— 点(1pt = 1/72 of 1in)
  • pc —— 派卡(1pc = 12pt)

注:

  • 像素(px)是相对于观看设备的。对于低 dpi 的设备,1px 是显示器的一个设备像素(点)。对于打印机和高分辨率屏幕,1px 表示多个设备像素。

相对长度单位

相对长度单位规定相对于另一个长度属性的长度。相对长度单位在不同渲染介质之间缩放表现得更好。

相对长度单位

  • em —— 相对于元素的字体大小(font-size)(2em 表示当前字体大小的 2 倍)
  • ex —— 相对于当前字体的 x-height(极少使用)
  • ch —— 相对于 “0”(零)的宽度
  • rem —— 相对于根元素的字体大小(font-size)
  • vw —— 相对于视口宽度的 1%
  • vh —— 相对于视口高度的 1%
  • vmin —— 相对于视口较小尺寸的 1%
  • vmax —— 相对于视口较大尺寸的 1%
  • % —— 相对于父元素

注:

  • em 和 rem 可用于创建完美的可扩展布局。
  • 视口(VIewport)= 浏览器窗口的尺寸。如果视口宽 50 厘米,则 1vw = 0.5cm。

px、em、rem 的区别

px

px,即像素(pixel)。绝对长度单位,但是也可以看作相对长度单位。像素 px 是相对于显示器屏幕分辨率而言的。

px 特点

  • IE 无法调整那些使用 px 作为单位的字体大小
  • 国外的大部分网站能够调整的原因在于其使用了 em 或 rem 作为字体单位
  • Firefox 能够调整 px 和 em、rem,但是 96% 以上的中国网民使用 IE 浏览器(或内核)。

em

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

em 特点

  • em 的值并不是固定的
  • em 会继承父级元素的字体大小

使用

任意浏览器的默认字体大小都是 16px。所有未经调整的浏览器都符合:1em = 16px。那么 12px = 0.75em,10px = 0.625em。

为了简化 font-size 的换算,需要在 css 中的 body 选择器中声明 font-size = 62.5%,这就使 em 值变为 16px * 62.5% = 10px,这样 12px = 1.2em,10px = 1em,也就是说只需要将原来的 px 数值除以 10,然后换上 em 作为单位就可以了。

所以在写 CSS 的时候,需要注意:

  1. body 选择器中声明 font-size = 62.5%
  2. 将原来的 px 数值除以 10,然后换上 em 作为单位
  3. 重新计算那些被放大的字体的 em 数值。避免字体大小的重复声明

实例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title></title>
  6. <style>
  7. body {
  8. font-size: 62.5%;
  9. }
  10. p {
  11. font-size: 1.2em;
  12. }
  13. p>span {
  14. font-size: 1.2em;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <p>
  20. Hello <span>World</span>
  21. </p>
  22. </body>
  23. </html>

要想 p 和 span 中的字体大小都为 12px:在 p 中声明了字体大小为 1.2 em,那么在声明 span 中的字体大小时就只能是 1em,而不是 1.2em,因为 span 因继承 p 的字体大小而变为了 1em = 12px(如果设置为 1.2em:12px * 1.2 = 14.4px)。

rem

rem 是 CSS3 新增的一个相对单位(root em,根em)。

使用 rem 为元素设定字体大小时,仍然是相对大小,但相对的只是 HTML 根元素。

rem 集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。

使用

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title></title>
  6. <style>
  7. html {
  8. font-size: 62.5%;
  9. }
  10. p {
  11. font-size: 1.2rem;
  12. }
  13. p>span {
  14. font-size: 1.2rem;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <p>
  20. Hello <span>World</span>
  21. </p>
  22. </body>
  23. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/1015009
推荐阅读
相关标签
  

闽ICP备14008679号