px vs em vs rem

pxemrem都是网页设计中的长度单位。px是最常用的单位,它是 Pixel 的缩写代表像素,它是计算机图像显示的最小单位;em(font size of the element)它是一个相对大小的单位,它的大小会相对于它的父级元素的字体大小;rem(font size of the root element)它也是一个相对大小的单位,但是它相对于根元素字体的大小;

px

px单位就不用多解释了,非常常见。

em

em是为了解决长度单位在不同缩放比例下浏览器中能够更好的显示的问题,它是一个相对大小的单位,但是它是相对于其父级元素的大小,这样导致了一个问题,在现在复杂的网页下,层层嵌套的元素最终导致很难控制大小。

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

body {
    font-size: 1.2em; /*1.2em × 10 = 12px */
}

p {
    font-size: 1.2em; /*1.2em × ? = ? */
}

上面的例子我们可以看到,浏览器默认字体大小为16pxhtml的字体大小为16px * 62.5% = 10pxbody的字体大小相对于html元素,计算出来为12px;但是p的大小很难计算,因为我们不知道它的父级元素的字体大小到底是多少,它的父级元素字体大小可能是12px、也有可能是20px,它太难控制了。

rem

CSS3 的出现让我们对相对的尺寸有了更加稳定的设置方法:那就是remrem它是相对于根元素来计算大小的:

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

body {
    font-size: 1.2rem; /*1.2rem × 10 = 12px */
}

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

这样一来,我们可以很好的来控制长度单位的大小,它是一旦设置就是一个稳定的值;我们经常在响应式设计中采用这样的长度单位,通过媒体查询可以让长度单位更加符合不同屏幕大小:

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

@media screen and (min-width: 400px) {
    html {
        font-size: 75%; /* 12 ÷ 16 × 100% = 75% */
    }
}

@media screen and (max-width: 319px) {
    html {
        font-size: 50%; /* 8 ÷ 16 × 100% = 50% */
    }
}

参考

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 概念介绍 px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长...
    柯琦阅读 6,195评论 0 7
  • 作者:HelKyle链接:http://www.w3cplus.com/css/when-to-use-em-vs...
    红叶丶秋鸣阅读 8,549评论 0 3
  • ·##概念介绍:1.px(pixel,像素):是一个虚拟长度单位,是计算机系统的数字化长度单位,如果px要换算成物...
    小时候很帅的龙少阅读 6,372评论 0 6
  • 概念介绍: 1、px (pixel,像素): 是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算...
    _双眸阅读 3,599评论 0 0