关于rem和em

em

首先要知道em是相对于谁的值。
以前我一直以为em是使用em这个元素的父元素的font-size值。这句话是对也不对。
为什么这么说呢?
当使用em的这个元素没有设置显式的设置font-size值的时候(这里的显式是指使用px等单位设置,像font-size=1.25em这种不算,下文会介绍这种情况。),font-size=1.25em的em值是该元素的父元素的font-size值。比如其父元素的font-size=16px,那么该元素的font-size=1.25*16px=20px。但是如果这个元素还设置了padding值,而且还好死不死的用了em。padding=2em,那么情况会怎么样呢?好了不卖关子了就直接说了,这里的padding值会等于40px,哎?这种情况的话em不是等于20px了吗?哎?这个20px好像在哪里见过哎。没错就是上面设置的该元素的font-size值。这个时候就有点乱了。那什么时候em是指的父元素的font-size值,什么时候又是指的是元素本身的font-size呢。在元素本身没有显式设置font-size值的时候,也就是说其font-size的值是由继承得来的时候,em值为其父元素的font-size值(此时该元素的font-size继承值就是父元素的font-size)。而且在任何时候,该元素内其他属性使用em的时候,em的值都是该元素本身的font-size值(计算值)。

rem

rem是指根元素HTML的font-size值,在没有设置根元素HTML的font-size时,html的font-size会继承浏览器的默认字体大小。
比如浏览器的默认字体为16px,那么此时的html继承了这一字体大小,那么在HTML文档的任何地方rem都是16px,如果html设置了font-size=1.25em,此时html的font-size=1.25×16px(继承浏览器)=20px,那么rem就等于20px。同时如果浏览器字体大小被改成20px,那么html的font-size为1.25*20px=25px,rem也就是25px了。当然如果显示的设置了HTML的font-size=10px,那么rem也就是10px了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,692评论 1 92
  • 作者:HelKyle链接:http://www.w3cplus.com/css/when-to-use-em-vs...
    红叶丶秋鸣阅读 8,596评论 0 3
  • 网页字体排版的最佳实践之一就是使用相对单位,如rem和em. 问题是,你应该使用哪一个呢?一直以来,rem支持者和...
    mhy_web阅读 3,813评论 0 0
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 4,741评论 0 1
  • rem是什么 rem(font size of the root element)是指相对于根元素的字体大小的单位...
    一只好奇的茂阅读 10,258评论 1 25

友情链接更多精彩内容