px、em、rem的区别css单位换算

简介: px、em、rem的区别css单位换算

在对页面进行自适应时,查阅相关资料了解到,通常有两种方式将px转换为em或者rem,下面就上述三者之间的联系进行讲解:

em与px转换

一般浏览器默认1em=16px,通过设置font-size大小来代表如:16px*0.625=10px,其则代表1em=10px,直接上代码(注释的样式为浏览器默认 (1em=16px)的长宽):

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
         body{font-size: 16px;}
        /*1em=10px*/
        /*#div1{width:640px;height:320px;margin:160px auto;padding-top:160px;}*/
        #div1{width:40em;height:20em;margin:10em auto;padding-top:10em;}
        /*#div2{width:200px;height:200px;margin:0 auto;}*/
        #div2{width:12.5em;height:12.5em;margin:0 auto;}
        /*#div3{width:480px;height:320px;margin:80px auto;}*/
        #div3{width:30em;height:20em;margin:5em auto;}
    </style>
</head>
<body>
<div id="div1" style="background:lightslategray;">
    <div id="div2" style="background: darkseagreen;"></div>
</div>
<div id="div3" style="background: deepskyblue;"></div>
</body>
</html>

在进行转换之前,我们一定要查看浏览器默认字体(最小)大小,如chrome浏览器,默认字体最小为12px,所以即使我们为了方便设置1em=10px,其浏览器仍旧以1em=12px计算。

16px*0.75=12px=1em

body{font-size: 12px;}
 或者{font-size: 75%;}

em与rem区别

rem与px,和em与px转换是一样的,二者区别在于前者默认从根元素继承,后者从父级元素继承,还是上述代码,html我们不设置font-size,其默认为16px,上代码展示(div3单位我们修改为rem):

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{font-size: 12px;}
        /*1em=10px*/
        /*#div1{width:640px;height:320px;margin:160px auto;padding-top:160px;}*/
        #div1{width:40em;height:20em;margin:10em auto;padding-top:10em;}
        /*#div2{width:200px;height:200px;margin:0 auto;}*/
        #div2{width:12.5em;height:12.5em;margin:0 auto;}
        /*#div3{width:480px;height:320px;margin:80px auto;}*/
        #div3{width:30rem;height:20rem;margin:5rem auto;}
    </style>
</head>
<body>
<div id="div1" style="background:lightslategray;">
    <div id="div2" style="background: darkseagreen;"></div>
</div>
<div id="div3" style="background: deepskyblue;"></div>
</body>
</html>

从上述我们可以看到,div3单位设置rem后,其并没有根据body设置而变化,仍旧默认font-size:16px。所以为了方便,我们可以设置16px*1.25=20px,其代表1em为20px,同样有利于我们计算。


相关文章
|
12天前
|
前端开发 Ruby
CSS 预编语言的区别
【10月更文挑战第24天】Sass、Less 和 Stylus 等 CSS 预编语言在语法特点、功能特性、性能表现、社区和生态系统等方面存在着不同之处。在选择使用哪种预编语言时,需要综合考虑项目需求、团队技术偏好、个人习惯等因素。你可以根据具体情况进行评估和选择,以充分发挥这些语言的优势,提高前端开发的效率和质量。
|
12天前
|
前端开发 开发者 UED
设备像素、css像素、设备独立像素、dpr、ppi之间的区别
【10月更文挑战第24天】在实际应用中,这些概念相互关联,共同影响着网页在不同设备上的显示表现。开发者需要了解它们之间的区别和关系,以便更好地进行网页设计和优化,确保在各种设备上都能提供良好的用户体验。
WK
|
2月前
|
存储 移动开发 前端开发
HTML5和CSS5有什么区别
HTML5和CSS5在网页设计中扮演不同角色。HTML5是超文本标记语言的第五版,通过新特性如实时更新、跨平台运行及更好的安全性等,定义网页内容和结构。尽管常说CSS5,实际最新的CSS版本包含多个模块如CSS Grid和Flexbox,主要用于控制网页布局和样式,提供强大的选择器、动画支持和响应式设计,与HTML5相辅相成,共同构建现代网页的基础架构。
WK
47 3
|
1月前
|
前端开发 JavaScript
css的引入方式和区别
css的引入方式和区别
31 0
|
3月前
|
前端开发 JavaScript Serverless
揭秘CSS布局神器:vw/vh、rem、%与px大PK,掌握它们,让你的网页设计秒变高大上,面试难题迎刃而解!
【8月更文挑战第4天】在Web开发中,合理选择CSS单位对响应式布局至关重要。本文探索viewport单位(vw/vh)、rem、百分比(%)及像素(px)的基础知识与应用场景。通过代码示例,展示如何运用这些单位实现全屏布局、尺寸比例调整、灵活的元素大小及固定尺寸。最后,模拟面试题,介绍如何仅用CSS实现一个元素的高度为其宽度两倍且响应视口变化的方法。
252 8
|
3月前
|
前端开发
css中px和em的区别
css中px和em的区别
57 0
|
3月前
|
前端开发
css中px和em的区别
css中px和em的区别
|
3月前
|
前端开发
CSS——如何使网页字体小于12px
CSS——如何使网页字体小于12px
36 0
|
4月前
|
编解码 前端开发
CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )
CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )
63 0
|
4月前
|
前端开发 JavaScript
CSS 【详解】响应式布局(含 rem 详解)
CSS 【详解】响应式布局(含 rem 详解)
54 0