天天看点

html中em和rem,css3中rem与em之间有什么区别?

在css中单位长度用的最多的是px、em、rem。那么其中em、rem的区别是什么?下面本篇文章就来给大家介绍一下em、rem的区别,希望对大家有所帮助。

html中em和rem,css3中rem与em之间有什么区别?

em

em是相对长度单位。其相对于当前对象内文本的font-size,如果当前文本的字体尺寸没有设置,则相对于浏览器的默认字体尺寸。

em的特点是:em的值不是固定的。

em会继承父级元素的字体大小

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

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

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

重新计算那些被放大的字体的em数值。

避免字体大小的重复声明。 也就是避免1.2 * 1.2= 1.44的现象。比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px

rem

rem这个单位是CSS3中新增的一个相对单位,目前移动开发使用也是最广泛的,它也是一个相对单位,它的相对和em就是不一样了,使用rem为元素设定字体大小时,仍是相对大小,不过相对的只是HTML根元素,是不是感觉比em要简单的多,不用时时去关注父级的情况。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。

em、rem的区别:

rem与em都是相对单位,我们使用它们的目的就是为了适应各种手机屏幕。

rem是根据html根节点来计算的,而em是继承父元素的字体。

对于em和rem的区别一句话概括:em相对于父元素,rem相对于根元素。

rem中的r意思是root(根源),这也就不难理解了。