CSS3字体大小rem属性用法
PX为单位
在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较精确和固定。
只要页面某元素设置了px字体大小,其子元素/子孙元素未设置字体大小或设置的字体大小css优先级没父元素高的话,该子元素/子孙元素会继承其父元素的px字体大小设置 。
这种方法存在一个问题:当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小,这时会使用我们的Web页面布局被打破。
这样对于那些关心自己网站用户可读性、用户体验的前端人员来说,就是一个大问题了。
因此,这时就提出了使用“em”来定义Web页面的字体。
em为单位
em(font-size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算。
使用是“px”会在浏览器中放大或缩放浏览页面时页面布局会被打破,要解决这个问题,我们可以使用“em”单位。
在使用“em”作单位时,一定需要知道其父元素的字体大小设置,因为“em”就是一个相对值,而且是一个相对于父元素的字体大小值(缩放比率/缩放因子),其真正的计算公式是:
例子:父元素为16px,子元素设置为1.4em 则子元素实际字体大小16px * 1.4=22.4px。
因此 “1.4em”可以是“14px”,也可以是“20px”,或者说是“24px”,总之是一个不确定值,至于确定值是多少,必须知道其父元素的值!
用rem单位
rem(font-size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,
从上面的介绍可知,px单位的的设置会影响子元素/子孙元素的字体大小显示,而em单位的设置也是根据父元素的字体来确定的。这时候父元素的字体大小设置就显得很关键了!
rem是相对于页面根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值即可,其它元素设置rem大小都是以html的字体大小设置为参考值进行一个字体大小缩放,字体大小值标准参考图:

我们来看一个简单的代码实例:
html {font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/}
body {font-size: 1.4rem;/*1.4 × 10px = 14px */}
h1 { font-size: 2.4rem;/*2.4 × 10px = 24px*/}
我在根元素<html>中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算:1.2rem即 12px ,1.6rem即16px 。 如果没有设置,将是以浏览器默认的“16px”为基准 )。
rem属性浏览器兼容性
rem是CSS3新引进来的一个度量单位,支持的浏览器还是蛮多的,比如:Mozilla Firefox 3.6+、Apple Safari 5+、Google Chrome、IE9+和Opera11+。
例如要设置手机浏览器显示,父元素字体像素为6px,那就设置
html {font-size: 37.5%;/*6 ÷ 16 × 100% = 37.5%*/}
body {font-size: 1.4rem;/*1.4 × 6px = 8.4px */}
h1 { font-size: 2.4rem;/*2.4 × 6px = 14.4px*/}
参考:
http://www.phpvar.com/archives/2752.html
https://cloud.tencent.com/developer/information/%E7%A7%BB%E5%8A%A8%E7%AB%AFrem%E9%80%82%E9%85%8D
https://zhidao.baidu.com/question/553998626685304812.html
https://www.cnblogs.com/wxcbg/p/5908967.html
CSS3字体大小rem属性用法的更多相关文章
- js控制手机端字体大小rem
		
//得到手机屏幕的宽度 let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth; if(ht ...
 - CSS font-size字体大小样式属性
		
设置字体大小CSS单词与语法 基本语法结构: .divcss5{font-size:12px;}设置了文字大小为12px像素Font-size+字体大小数值+单位 单词:font-size语法:fon ...
 - js 抓取屏幕宽度设置字体大小 rem
		
var doc = window.document var docEl = doc.documentElement var tid function refreshRem () { var width ...
 - CSS3 中的 rem 值与 px 之间的换算
		
想给博客换个主题,到处找找不到满意的,最后发现默认主题 twentytwelve 越看越顺眼,于是就想动手改一下用. 看 CSS 文件的时候发现引入了一个新大小单位:rem,虽然 CSS 文件注释里有 ...
 - 【转】CSS3的REM设置字体大小
		
rem 长度单位 在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: ...
 - CSS3的REM设置字体大小
		
在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说百分比方便,以至于出现了CSS Font-Size: em vs. px v ...
 - 谈谈css3的字体大小单位[rem]
		
最近接收了一份面试题,内容是移动端传播的H5(在中国通常这么叫)广告页. 秉承移动端web尽量少用px的概念,我使用rem进行了一次重构.对于rem,基本是给 html/body 元素定义一个字体大小 ...
 - CSS3自适应字体大小(vw vh)
		
viewpoint css3提供了一些与当前viewpoint相关的元素,vw,vh,vmin, vmax等. “viewpoint” = window size vw = 1% of viewpor ...
 - 字体大小之px、em、rem、pt,字号详解
		
PX px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的. 是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Pe ...
 
随机推荐
- dubbo源码阅读之服务引入
			
服务引入 服务引入使用reference标签来对要引入的服务进行配置,包括服务的接口 ,名称,init,check等等配置属性. 在DubboNamespaceHandler中,我们可以看到refer ...
 - ColdFusion 编写WebService 示例
			
1.开发 Web Services,编写cfcdemo.cfc组件,代码如下: <cfcomponent style ="document" namespace = &quo ...
 - IOS模拟器调试ANE
			
来源:http://www.tuicool.com/articles/AFRJzi 利用iOS模拟器来检测和调试AIR应用程序补充篇 Air3.4来了 除去可以直接往模拟器里面部署应用,还可以往真机里 ...
 - python使用tkinter无法给顶层窗体的输入框设定默认值
			
这几天某同学遇到了一个棘手的问题,困扰了很久.今天终于解决了,我来记录一下坑. 情景:python 使用tkinter为第二层窗体(顶层窗体)中的一个输入框设定默认值时,总是无法设置,而且对输入框获取 ...
 - linux下安装dotnet core
			
windows下安装linux系统需要用到VMware 这个软件,可自行百度下载,然后安装centos7系统安装 centos下安装dotnetcore 在终端输入命令: sudo yum insta ...
 - Android笔记(六十六) android中的动画——XML文件定义属性动画
			
除了直接在java代码中定义动画之外,还可以使用xml文件定义动画,以便重用. 如果想要使用XML来编写动画,首先要在res目录下面新建一个animator文件夹,所有属性动画的XML文件都应该存放在 ...
 - angularcli 第二篇(数据绑定、属性申明、绑定属性)
			
1.数据绑定 插值绑定: <li>{{ hero.name }} </li> 或 <div class = "{{ demo }}&q ...
 - SVN提交错误及使用技巧
			
错误1: Some of selected resources were not added to version control. Some of selected resources were n ...
 - [https][tls] 如何使用wireshark查看tls/https加密消息--使用keylog
			
姊妹篇: [ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容 [https][tls] 如何使用wiresha ...
 - DNS BIND配置 配置基本缓存服务器 DNS正向解析 DNS反向解析
			
一. 缓存服务器配置 1.DNS:BIND Berkeley Internet Name Domain 版本bind97: RPM服务器端包的名字 安装bind-libs bind ...