em和rem的区别,rem适配的原理

本文介绍了em和rem这两个CSS3中的相对单位,讨论了它们的工作原理,以及rem在移动端适配中的优势,同时提供了配置rem以实现响应式设计的方法。
摘要由CSDN通过智能技术生成

一、em是什么?


em是相对长度单位,其值并不固定,一般会继承父级元素的字体大小。任意浏览器的默认字体高都是16px,所有未经调整的浏览器都符合: 1em=16px。但如果父级设置了其他字体高度,那此时的1em就等于父级设置好的字体高度。一般用到段落的首行缩进 2em 

二、rem是什么?


rem是CSS3中新增的一个单位,目前移动开发使用也是最广泛的,同样,它也是一个相对单位,不过相对的是HTML根元素,和em不同的是,rem不用时时去关注父级的情况。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。常被用来做移动适配,pc端页面不推荐使用rem。

三、em和rem的区别


rem与em都是相对单位,我们使用它们的目的就是为了适应各种不同的移动端和pc端的屏幕。

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

四,rem的适配原理 

根据不同屏幕的宽度,以相同的比例动态修改html的font-size适配,并将px替换成rem,它可以很好的根据根元素的字体大小来进行变化,从而达到各种屏幕基本一直的效果体验 

  • 将 设备视口 划分成 n 份, n 可以是 任何正确的值(如 flexible.js 中的 n = 10
  • 设置 设备视口 根元素 htmlfont-size = 设备视口宽 ÷ 份数 n,即得到 设备视口 1 rem 到底表示 多少设备视口 px

 将设备视口分成 10 份,设置 根元素 html 的 font-size = 375 ÷ 10 = 37.5 px,即 1 rem= 37.5 px

 

配置rem
window.onload = () => {
    document.documentElement.style.fontSize = window.innerWidth / 375 * 100 + 'px';
}
window.onresize = () => {
    document.documentElement.style.fontSize = window.innerWidth / 375 * 100 + 'px';
}

 总结:本人才疏学浅,水平有限,请大家多多包涵和指点。多谢🤝🫡 👍。  加油✊🫶

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了适配rem,可以按照以下步骤来配置ant-design: 1. 在你的项目中引入lib-flexible库,这可以通过在main.js文件中添加以下代码实现: ```javascript import 'lib-flexible/flexible' ``` 这个库会根据设备的屏幕大小来动态调整rem的值,从而实现适配效果。 2. 安装lib-flexible库,你可以使用npm命令来安装它: ```shell npm i lib-flexible --save ``` 这个命令会将lib-flexible库添加到你的项目依赖中。 3. 配置postcss-pxtorem插件,这个插件可以将以px为单位的样式自动转换为rem单位。 首先,在项目的根目录下找到.postcssrc.js文件,如果没有这个文件,你可以手动创建它。 然后,在这个文件中添加以下代码: ```javascript module.exports = { "plugins": { "autoprefixer": {}, 'postcss-pxtorem': { rootValue: 37.5, // 根据设计稿的尺寸来设置rootValue的值 propList: ['*'] } } } ``` 这样配置之后,postcss-pxtorem插件就会根据你设置的rootValue值,将样式中的px单位转换为rem单位。 通过以上步骤的配置,你就可以在ant-design中使用rem单位来适配不同的屏幕尺寸了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue2.x+vantd rem适配](https://blog.csdn.net/learn_daydayUp/article/details/120717585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值