`

CSS3 px 和 em 和 rem

阅读更多

px 为单位:
px 实际上就是像素,用PX设置字体大小时,比较稳定和精确。但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破。这样对于那些关心自己网站可用性的用户来说,就是一个大问题了。因此,这时就提出了使用“em”来定义Web页面的字体。

 

em 为单位:
em 就是根据基准来缩放字体的大小。em 实质是一个相对值,而非具体的数值。这种技术需要一个参考点,一般都是以<body>的“font-size”为基准。如WordPress官方主题Twenntytwelve的基准就是14px=1em。
另外,em是相对于父元素的属性而计算的,如果想计算 px 和 em 之间的换算。

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
<title>em 的演示</title>
<style>
body {
	font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/
}
h1 {
	font-size: 2.0em; /*2.0em × 10 = 20px */ font-weight:normal;
}
p {
	font-size: 1.6em; /*1.6em × 10 = 16px */
}
li {
	font-size: 1.6em; /*1.6 × ? = 16px ? */
}
</style>
</head>
<body>
	<h1>阅谁问君诵,水落清香浮</h1>
    <p>阅谁问君诵,水落清香浮</p>
    <h1>
        <ul>
            <li>阅谁问君诵,水落清香浮</li>
            <li>阅谁问君诵,水落清香浮</li>
            <li>阅谁问君诵,水落清香浮</li>
        </ul>
    </h1>
</body>
</html>

效果图:

 

rem 为单位:
em 是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而 rem 是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值。

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
<title>rem 的演示</title>
<style>
html {
	font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/
}
body {
	font-size: 1.4rem;/*1.4rem × 10px = 14px */
}
h1 {
	font-size: 2.0rem; /*2.0rem × 10px = 20px */ font-weight:normal;
}
p {
	font-size: 1.6rem; /*1.6rem × 10px = 16px */
}
li {
	font-size: 1.6rem; /*1.6rem × 10px = 16px */
}
</style>
</head>
<body>
	<h1>阅谁问君诵,水落清香浮</h1>
    <p>阅谁问君诵,水落清香浮</p>
    <h1>
        <ul>
            <li>阅谁问君诵,水落清香浮</li>
            <li>阅谁问君诵,水落清香浮</li>
            <li>阅谁问君诵,水落清香浮<div>注意一</div></li>
        </ul>
    </h1>
    <div>注意二</div>
</body>
</html>

效果图:

 

浏览器的兼容性
除了IE6-IE8,其它的浏览器都支持 em 和 rem 属性,px 是所有浏览器都支持。
因此为了浏览器的兼容性,可“px”和“rem”一起使用,用"px"来实现IE6-8下的效果,然后使用“rem”来实现其他浏览器的效果。

 

 综上案例,建议做网站使用 “px” 或 “rem”,不过也有出名的网站使用 em。这是一个考虑的问题。

 

  • 大小: 41.2 KB
  • 大小: 32 KB
分享到:
评论

相关推荐

    知识普及:彻底搞懂CSS中单位px和em,rem的区别

    3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。 px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册) em是相对长度单位。相对于当前对象内文本...

    CSS 中px、em、rem、%、vw、vh单位之间的区别详解

    1 、px px就是pixel(像素)的缩写,相对长度单位,相对于屏幕分辨率。 2、em 参考物是父元素的font-size,具有继承的特点。浏览器默认字体是16px,整个页面内1em不是一个固定的值。...rem是CSS3新增的一

    css中px、em和rem的区别总结

    相信每位前端工程师们都有这么一个体会,国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,...下面这篇文章小编就来给大家详细介绍关于css中px、em和rem的区别,需要的朋友可以参考借鉴,下面来一起看看吧。

    postcss-pxtorem:使用PostCSS将像素单位转换为rem(根em)单位

    postcss-pxtorem 的插件,可从像素单位生成rem单位。 安装 $ npm install postcss postcss-pxtorem --save-dev 用法 像素是最容易使用的单位(观点)。 它们的唯一问题是它们不允许浏览器将默认字体大小更改为16。...

    CSS px,rem关系转换换算

    懒人推动进步,简化px,em,rem的换算

    CSS中px em rem区别与使用

    最近在学习字体时遇到字体大小的设置,font-size单位可以是px或em或rem,那么这几种单位都有什么区别呢,该如何使用呢? px是像素图像的基本采样单位,相对于显示器屏幕分辨率而已的,什么是一个像素呢,你把一张图...

    详解Vue-cli3.X使用px2rem遇到的问题

    首先,我们应该用NPM来安装postcss-px2rem npm i postcss-plugin-px2rem --save -dev 然后我们需要在vue.config.js中创建一个配置。由于在vue-cli3.X中。去掉了build和config文件夹。所有的配置都放到了vue.config....

    vue3.0中使用postcss-pxtorem的具体方法

    postcss-pxtorem是PostCSS的插件,用于将像素单元生成rem单位。 前端开发还原设计稿的重要性毋庸置疑,目前应用的单位最多还是rem,然而每次在制作过程中需要自己计算rem值,为了能够直接按照设计图的尺寸开发,并且...

    css中的px、em、rem、pt 特点和区别及换算详解

    概念介绍: 1、px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,...通常1em=16px。 3、pt (point,磅):是一个物理长度单位,指的是72分之一英寸。pt=1/72(英寸),

    css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况

    rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。 (另外需注意chrome强制最小字体为12号,即使设置成 10px 最终都会显示成 12px,当把html的font-...

    Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)

    今天,我们使用Vue CLI3 做一个移动端适配 。   前言 首先确定你的项目是Vue CLI3版本以上的。 一、移动端适配包 1、安装移动端适配包 npm i lib-flexible -S 2、在 main.js 引入适配包 import Vue from 'vue' ...

    详解CSS3 rem(设置字体大小) 教程

    css3新增了相对单位 rem ,使用rem同em一样皆为相对字体大小单位,不同的是rem相对的是HTML根元素。鉴于很多网友提到了rem,所以我这里就对其中一个总结。 在Web中使用什么单位来定义页面的字体大小,至今天为止都还...

    Vue-cli3.X使用px2 rem遇到的问题及解决方法

    首先,我们应该用NPM来安装postcss-px2rem npm i postcss-plugin-px2rem --save -dev 然后我们需要在vue.config.js中创建一个配置。由于在vue-cli3.X中。去掉了build和config文件夹。所有的配置都放到了vue.config....

    关于vue利用postcss-pxtorem进行移动端适配的问题

    刚开始我按照网上的一些方式利用postcss-pxtorem方式去适配的时候怎么样都不成功,后来经过自己不断尝试之后终于成功了。稍微坐下总结: 1.个人建议在进行postcss-pxtorem适配的时候利用webpack进行项目配置,而...

    px、em、rem区别1

    为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样1

Global site tag (gtag.js) - Google Analytics