关于CSS中的单位px、em、rem

首先,px、em、rem都是相对单位;

px(pixel像素)是相对于显示器屏幕分辨率的,IE无法调整那些使用px作为单位的字体大小;

em是相对于当前对象内文本字体的尺寸,如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册),不过需要注意的是em单位会继承父级元素的字体大小;

而rem是CSS3新增的一个相对长度单位(root em,根em);那么这个单位与em有什么区别与联系呢?rem和em单位一样,都是一个相对单位,不同的是em是相对于父元素的font-size进行计算,而rem是相对于根元素html的font-size来进行计算的 , 这样一来rem就绕开了复杂的层级关系,实现了类似于em单位的功能。目前除了IE8及其更早版本的浏览器其他的都已支持rem;

/*********************/

任意浏览器的默认字体高都是16px;所有未经调整的浏览器都符合: 1em=16px,那么12px=0.75em,10px=0.625em;为了简化font-size的换算,需要在css中的body选择器中声明 Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样1em=10px, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

所以我们在用em作为单位时,需要注意三点:

1. body选择器中声明Font-size=62.5%;

2. 将你的原来的px数值除以10,然后换上em作为单位;

3. 重新计算那些被放大的字体的em数值,避免字体大小的重复声明;

关于第三点,也就是避免1.2 * 1.2= 1.44的现象;比如说你在#div1中声明了字体大小为1.2em,那么在声明#div1的子元素#div2的字体大小时就只能是1em,而不是1.2em;若是1.2em,它会因继承了#div1的字体高而变为了1.2*1.2=1.44相对长度; 所以em的值其实并不是固定的,它会继承父级元素的字体大小;

默认情况下浏览器给的字体大小是16px,所以按照转化关系 16px = 1rem;使用rem布局的时候,为了兼容不同的分辨率,我们应该要动态的修正根字体的大小,让所有的用rem单位的子元素跟着一起缩放,从而达到自适应的效果;一般情况在项目的最前面加载一段js来修改html的font-size,针对不同分辨率计算font-size,监听浏览器更改 html的font-size;给html设置fontSize大小,其实就是在DOMContentLoaded或者resize变化后调整fontSize的大小,从而调整rem的比值关系;

下面贴上Aaron大神在慕课上讲圣诞节的时候讲到的代码,实现监听浏览器更改html的font-size;ps:非Ctrl c+v , 良心手打~嘤嘤


  var docEle=document.documentElement;

  //当用户翻转设备(即设备横向持或纵向持,方向发生改变时)此事件被触发;

  //在绑定resizeEvt事件时,注意当浏览器不支持orienrationchange事件时我们绑定resize事件;总之就是监听当窗口发生变化时就 需要重新设置根字体的值;

  resizeEvt=‘orientationchange‘ in window ? ‘orientationchange‘ : ‘resize‘ ,

  reCal=function(){

    //   ①

    docEle.style.fontSize=20*(docEle.clientWidth/320)+‘px‘;

  }

  绑定浏览器缩放与加载事件

  windows.addEventListener(resizeEvt , reCal , false);

  windows.addEventListener(DOMContentLoaded , reCal , false);

注意docEle.style.fontSize=20*(docEle.clientWidth/320)+‘px‘这个公式不是一定的,需要根据不同情况定义,具体的可参见:http://www.data321.com/fe659370;

/*******初学小白写的文,各位大大如果hua现文中有错或有更好的见解 欢迎留言指正哟,阿里嘎多思密达~~~*******/

/*****单位总结就酱了,吃饭饭去啦,我是被光明召唤的宝宝,哈哈!*****/

时间: 2024-10-18 08:05:41

关于CSS中的单位px、em、rem的相关文章

css的大小单位px,em,rem区别

PX px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.使用px可以准确的定位网页元素,但是,不同显示器网页的显示效果可能会有差异,比较难兼容. EM EM就是根据基准来缩放字体的大小.EM实质是一个相对值,而非具体的数值.em是相对于父元素的属性而计算的,假如父元素的font-size是16px,2em=2*16px=32px. REM REM也是一个相对值,不过REM是相对html根元素的font-size而计算的. 一般浏览器的默认字体大小是16px,单位间的换

css中字体单位px,pt,em ,rem,百分比之间的区别和用法

css中字体单位px,pt,em ,rem,百分比之间的区别和用法 px 即像素,一般国内网站使用较多,默认大小是16px; pt 印刷行业常用单位 em  相对单位,相对父元素属性的单位 ,一般用于移动端布局 rem  结合相对定位和绝对定位的优势,相对根元素html,想要修改字体大小,只要修改html的大小就可以了 转换公式: pt=px乘以3/4 倍数em=倍数x16px 注意:1em=16px.那么12px=0.75em,10px=0.625em.   1.em的用法 在代码重写的过程中

css大小单位px em rem的转换和详解

PX特点1. IE无法调整那些使用px作为单位的字体大小:2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位:3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核). px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.(引自CSS2.0手册) em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸.(引自CSS2.0手册) 任意浏览器的默认

搞清css的单位 px,em,rem的区别

前言:现在上大街一眼望去,基本上90%的人都拿着手机,走路,逛街,吃东西都不停着,所以对于我们这种前端开发的程序猿来说,让网页适应于移动端可以说是必须要满足的.所以最近也是一直在学习和实践.然后就接触到rem这个单位,不妨就彻底弄明白这几个单位之间的区别吧. PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firefox能够调整px和em,rem,但是有很大比例的中国网民使用IE浏览器(或内核). p

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

px:绝对单位,页面按精确像素展示 em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值. rem:相对单位,可理解为"root em", 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持. (另外需注意chrome强制最小字体为12号,即使设置成 10px 最终都会显示成 12px,当把html的font-size设置成10px,子节点rem

css的单位 px em rem fr

px :px是像素,是相对长度单位,是相对于显示器屏幕分辨率而言的. px的特性是属于绝对数值,它不受外围单位影响. em :em是相对的数值单位,它会受到外围的文字大小所影响,而1em即是1倍的文字大小,1.5em也就是1.5倍的文字大小.它的单位长度是根据元素的文本垂直长度来决定的,可以作用在width.height.lineheight.margin.padding.border等样式的设置上. rem :rem是相对单位,是于HTML根元素,直白点就是相对于html元素字体大小的单位 优

css 中的position z-index em rem zoom 的基本用法

1.position定位: CSS 定位和浮动 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. 定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置. CSS 定位机制 CSS 有三种基本的定位机制:普通流.浮动和绝对定位. 除非专门指定,否则所有框都在普通流中定位.也就是说,普通流中的元素的位置由元素在 (X)HTML

px,em,rem字体单位

1.px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.(引自CSS2.0手册) 2.em是相对长度单位.相对于当前对象内文本的字体尺寸,em存在值继承问题. 浏览器的默认字体高都是16px,默认识别最小字体12px.所有未经调整的浏览器都符合: 1em=16px.那么12px=0.75em,10px=0.625em.为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px,

px,em,rem,vh,vw,vmin,vmax的区别

css手册中关于font-size是这么介绍的: font-size 值可以是绝对或相对值. 绝对值: 将文本设置为指定的大小 不允许用户在所有浏览器中改变文本大小(不利于可用性) 绝对大小在确定了输出的物理尺寸时很有用 相对大小: 相对于周围的元素来设置大小 允许用户在浏览器改变文本大小 注意:如果您没有规定字体大小,普通文本(比如段落)的默认大小是 16 像素 (16px=1em). 1.px:为像素单位.它是显示屏上显示的每一个小点,为显示的最小单位.它是一个绝对尺寸单位: 2.em:相对