首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

理解rem实现响应式布局原理及js动态计算rem「建议收藏」

前言   移动端布局中,童鞋们会使用到rem作为css单位进行不同手机屏幕大小上的适配。那么来讲讲rem在其中起的作用和如何动态设置rem的值。...1、什么是rem   rem是相对于根元素(html标签)的字体大小的单位。 2、rem实现适配的原理   核心思想:百分比布局可实现响应式布局,而rem相当于百分比布局。   ...3、如何动态计算rem   核心代码块: // 动态为根元素设置字体大小 function init () {       // 获取屏幕宽度...device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 5、使用体验:   我在项目中没有使用flexible.js...等此类动态计算rem的插件。

3.9K11
您找到你想要的搜索结果了吗?
是的
没有找到

JS:用rem来做响应式开发

它也会占用相当大的一部分,所以这次我想自己用原生写,响应式开发(我现在知道的尚浅)目前我了解有 1.百分比法: 顾名思义,页面的元素的margin,padding,width,height,等等都用%来计算...(你还可以设置更多节点) 用媒体查询的话要保证每个像素下都有对应的适配效果显然你要设置更小的宽度范围; 3.还有就是css3的单位remrem就是将根节点html的font-size的值作为整个页面的基准尺寸...那就要用到js在页面加载时获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度为640px,因为640px可以保证在至今最宽的手机上显示时网页两端刚好贴合屏幕...html的 font-size:62.5%;因为浏览器默认像素16px; 乘以62.5%之后为整数10px;方便计算 height:10.6rem; border:1px...solid #000; box-sizing: border-box; } js window.onresize = window.onload

6.1K10

rem逐帧动画与像素精度计算

本文作者:IMWeb 孙世吉 原文出处:IMWeb社区 未经同意,禁止转载 目录 1.一个大动图带来的思考 2.rem与逐帧动画 3.浏览器精度计算 4.一个神奇的优化一个大动图带来的思考...这里我们就遇到了它的一大问题——“精度计算”。 既然我们通常是根据屏幕的尺寸,计算并设置根元素的font-size,从而影响rem的基准值。...浏览器在计算像素精度时,并不是直接全部取整或者取余的,这点其实你稍微想想一下就能得到结论。那我们上文这样在109rem的宽度下取16帧的时候,自然也就会出现多1px或者少1px的误差。...此时我们有三个选择: 1、这部分内容抛弃rem单位,使用绝对正确的px单位来设置动画区间; 2、这部分内容抛弃雪碧图,使用16张相同大小的图片保证精度计算的误差是一致的(都向上或向下取整); 3、寻求更多的解决方案...同时使用svg设置外层尺寸(rem),再使用实际的大小设置内容的尺寸(px),我们保留rem自适应屏幕宽度特性的同时,也确保内部内容的大小计算不会出现精度问题(因为设定的都是整数的px),以下的最终的代码

1.5K10

rem+css预处理+媒体查询与rem+flexible.js做网页适配

适配方案 一、 css预处理语言 媒体查询 rem 二、 flexible.js rem 动态设置html标签font-size的大小 案例 如果设计稿是750px 2.假如我们把整个屏幕划分为15等份...(这里的标准是指以哪个尺寸的设计稿算出来的font-size值) rem配合 flexible.js 使用第一种方式有点麻烦 如下代码 很多媒体查询 /* 设置常见屏幕尺寸,修改html文字大小*/ /...75px(750px/10)就可以 里面页面元素rem值:页面元素的px值 / 75 剩下的交给flexible.js 如下 html{ font-size: 20px!...; /*750/*/ margin: 0 auto; line-height: 1.5; background-color: #f2f2f2; } 但是我们还是要手动计算元素的rem值,也就是元素的像素除以...html的font-size 750设计稿被分成10分那么html的font-size = 75px 也就是我们每个元素的高宽都要除下75 ,还是有点麻烦,之前我们用less还可以实现自动计算,现在确要我们手动计算

2K20

可爱的rem

来进行适配啊:可以说是目前最强的移动端适配方案... rem是什么 rem和em单位一样,都是一个相对单位,不同的是em是相对于父元素的font-size进行计算rem是相对于根元素html的font-size...进行计算的,这样一来rem就完美的绕开了复杂的层级关系,实现了类似em单位的功能。...默认情况下,浏览器给的字体大小是16px,按照转化关系16px = 1rem。 咦,都是固定了根元素是默认16px了,如何设备不同的移动设备呢?...见下: rem自适应处理方案 使用rem布局的时候,为了兼容不同的分辨率,我们应该要动态的修正根字体的大小,让所有的用rem单位的子元素跟着一起缩放,从而达到自适应的效果。...(function(){ var devicePixelRatio = window.devicePixelRatio || 1; })(); 复制代码 嗯,在移动端上面适配,rem和viewport

88020

第148天:js+rem动态计算font-size的大小,适配各种手机设备

方案: 布局排版都用rem做单位,然后不同宽度的屏,js动态计算根节点的font-size。...假设设计稿是宽750px来做的,书写css方便计算考虑,根节点的font-size假定为100px,得出设备宽为7.5rem。设计稿中标注的任何px数值都可以换算成px/100的rem值。...就是说,每一个设备的宽度都定为7.5个rem,然后宽度非750px的设备里,就需要用JS对font-size做动态计算。 换算关系为:根节点的font-size=设备宽度/7.5。...js动态计算的font-size值太小时,会导致超小屏上UI显示效果比预想中的偏大。...比如,font-size计算是10px,但是chrome只支持到12px,他就按照12px去渲染了,这就会导致UI偏大了。

2.5K30

不要再用js设置rem了,现代css自适应方案来了

em 1em 表示的是当前元素的字号,可以看到 1em 是 16px,因为当前元素的 font-size 是 16px,浏览器会根据相对单位 em 计算出绝对单位 px,所以当你改变了这个元素的 font-size...的值也是 2em ,虽然 font-size 和 padding 都是 2em ,但是它们的值是不一样的,padding 的大小为 64px ,font-size 先取到,然后根据 font-size 计算出...em 那么复杂的计算逻辑,是不是在项目中我们都用 rem 就好了呢?...等等,这样统一的字号标准,让页面不论是缩放还是适配都游刃有余,所以当你拿捏不准使用什么方式来设置一些元素的时候,就按照上述的来,一般是没有什么问题的 使用 js 设置根元素 rem 自从有了 rem...这个便捷的相对单位,我们就有了一些奇怪的操作,比如用 js 设置根元素大小这个操作,就是将网页的根元素字号根据屏幕的大小动态设置为一个固定值,然后在页面中根据 ui 给出的图,换算成 rem 值,进行各种适配

4.2K41

rem 布局原理

rem:相对于根元素(即 html 元素)font-size 计算值的倍数。 通俗的说,1rem = html 的 font-size 值 这段代码。...1.标签的 rem 单位的值怎么计算 通过使用 rem + js 改变 html 标签的 font-size(整体缩放)实现兼容性更高的页面下面来举个例子, 当我们拿到的设计图是 750px 的时候,...使用到 javascript 来动态改变 html 标签 font-size 的大小,其他的 rem 单位的数值就会被浏览动态计算转为 px 单位,从而达到和设计图高度的相似。...当屏幕 750px 的时候,html 的 font-size 值是 100px;窗口大小变化的时候,可以通过js 获取到窗口大小。...这时候获取到一个比例 750:100=获取到的屏幕大小:html 标签的 px 单位的值以下 js 代码,用于实现根据获取到的屏幕大小,动态修改 html 标签的 px 单位的值 <script

1.5K30

rem适配布局

CSS没有很好的计算能力 非前端开发工程师来讲 ,往往会因为缺少CSS编写经验而很难写出组织良好且易于维护的CSS代码项目。...4.1 rem实际开发适配方案 ①按照设计稿与设备宽度的比例,动态计算并设置html根标签的font-size大小; ( 媒体查询) ②CSS中,设计稿元素的宽、高、相对位置等取值,按照同等比例换算为rem...为单位的值; 4.2 rem适配方案技术使用(市场主流) 技术方案1 rem 媒体查询 less 技术方案2 (推荐) flexible.js rem rem实际开发适配方案...rem值 = 页面元素值( px) / html font-size字体大小 rem适配方案2 简洁高效的rem适配方案flexible.js 手机淘宝团队出的简洁高效移动端适配库 我们再也不需要在写不同屏幕的媒体查询...,因为里面js做了处理 它的原理是把当前设备划分为10等份,但是不同设备下,比例还是一致的。

1.9K30
领券