css 单位汇总

目录

一、px 与 %

1、px

2、%

二、em 与 rem

1、em

2、rem

3、em 与 rem 的区别

三、vw、vh 与 vm

1、vw

2、vh

3、vm

四、常见问题

1、使用 em 来设置文字大小要注意什么?

2、pc pt ch一般用在什么场景?

3、如何使 1rem=10px ?

4、如果父元素没有指定高度,那么子元素的百分比的高度是多少?

五、在线单位转换工具


一、px 与 %

1、px

px 是pixel(像素)的缩写。

相对于屏幕分辨率来说, px 是相对单位。

相对于显示器来说,px 是绝对单位,就是呈现在我们显示器上的一个个小点,每个像素点都是大小等同的,所以像素为计量单位被分在了绝对长度单位中。

px 的优点:比较稳定和精确。
px 的缺点:如果用户对浏览器进行缩放,这时会使用我们的Web页面布局被打破。

2、%

% 是百分比,相对长度单位,相对于父元素的百分比值。

百分比一般来说就是相对于父元素:

  • 对于普通定位元素就是我们理解的父元素。
  • 对于position: absolute;的元素是相对于已定位的父元素。
  • 对于position: fixed;的元素是相对于ViewPort(可视窗口)。

 

二、em 与 rem

1、em

em是相对长度单位。相对于当前对象内文本的字体尺寸(参考物是父元素的font-size)。

如当前父元素的字体尺寸未设置,则相对于浏览器的默认字体尺寸。

特点:

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

2、rem

rem是 CSS3 新增的一个相对单位。

rem 可理解为”root em”,相对于HTML根元素的字体大小(font-size)来计算的长度单位。

如果没有设置html的字体大小,就会以浏览器默认字体大小,一般是16px。

html{font-size: 62.5%}  /* 10 ÷ 16 × 100% = 62.5% */

body{font-size: 1.4rem;} /* 1.4 × 10px = 14px */

/*在根元素中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )*/

rem 的优点:

只需要设置根目录的大小就可以把整个页面的成比例的调好。

rem 的缺点:

使用rem单位,有时候在小屏幕上,可能会使得字体模糊(放大/缩小的原因)。

使用rem来定义图片、视频尺寸时,可能会使得图片视频模糊。

rem 的兼容性:

除了IE8及更早版本外,所有浏览器均已支持rem。

注意:chrome 强制最小字体为 12 号。即使设置成 10px, 最终都会显示成 12px,当把 html 的font-size设置成10px,子节点rem的计算还是以12px为基准。

3、em 与 rem 的区别

  • rem 是相对于根元素(html)的字体大小,而 em 是相对于其父元素的字体大小。
  • 如果这个属性根据它的 font-size 进行测量,则使用 em,其他的一切事物属性均使用 rem。

 

三、vw、vh 与 vm

vw、vh、vmax、vmin 这四个单位都是基于视口。

1、vw

vw 是相对视口(viewport)的宽度而定的,长度等于视口宽度的1%。

假如浏览器的宽度为200px,那么1vw就等于2px(200px/100)。

2、vh

vh 是相对视口(viewport)的高度而定的,长度等于视口高度的1%。

假如浏览器的高度为500px,那么1vh就等于5px(500px/100)。

3、vm

vm 是 CSS3 新增的一个相对单位,相对于视口的宽度或高度中较小的那个。

其实,vm 是 vmax 和 vmin 这两个长度单位的一个总称:

vmin 和 vmax 是相对于视口的高度和宽度两者之间的最小值或最大值。

vm 的缺点:兼容性差。

vm 的例子:

  • vmin 和 vmax:
    • 如果浏览器的高为300px、宽为500px,那么1vmin就是3px,1vmax就是5px;
    • 如果浏览器的高为800px,宽为1080px,那么1vmin也是8px,1vmax也是10.8px。
  • vm:
    • 浏览器高度900px,宽度1200px,取最小的浏览器高度,1 vm = 900px/100 = 9 px。

 

四、常见问题

1、使用 em 来设置文字大小要注意什么?

注意父元素的字体大小,因为em是根据父元素的大小来设置的。

比如:

同样是1.5em,要是父元素是20,那1.5em就是30px;

要是父元素是30px,1.5em就是45px(特别是在多重div嵌套里面更要注意)。

2、pc pt ch一般用在什么场景?

这些我们网页设计基本上用不到,在排版上会有用处

3、如何使 1rem=10px ?

在设置HTML{font-size:62.5%}即可。

4、如果父元素没有指定高度,那么子元素的百分比的高度是多少?

会按照子元素的实际高度,设置百分比则没有效果。

 

五、在线单位转换工具

一个px、em、rem单位的转换工具:http://pxtoem.com/

 

 

 

你可能感兴趣的:(#,CSS,/,C3)