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

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

1、什么是rem   rem是相对于根元素(html标签)的字体大小的单位。 2、rem实现适配的原理   核心思想:百分比布局可实现响应式布局,而rem相当于百分比布局。   ...3、如何动态计算rem   核心代码块: // 动态为根元素设置字体大小 function init () {       // 获取屏幕宽度...orientationchange', init) // 监听手机窗口变化,重新设置 window.addEventListener('resize', init)   理解:上面代码实现了...,无论设备可视窗口如何变化,始终设置rem为width的1/10.即实现了百分比布局 4、tip:   1、以上代码需在dom之前写入(可放在head里面第一个script标签)   2、移动端加上meta...device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 5、使用体验:   我在项目中没有使用flexible.js

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

    JS:用rem来做响应式开发

    (你还可以设置更多节点) 用媒体查询的话要保证每个像素下都有对应的适配效果显然你要设置更小的宽度范围; 3.还有就是css3的单位remrem就是将根节点html的font-size的值作为整个页面的基准尺寸...,例如那么1rem=10px;如何做到适配呢?...那就要用到js在页面加载时获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度为640px,因为640px可以保证在至今最宽的手机上显示时网页两端刚好贴合屏幕...; //我这里设置html的font-size:20px;最大 宽为640px,即相当于640/20=32rem;一行有3个div, 所以每个div宽10.6rem 你也可以像论坛里面讲的那样设置...solid #000; box-sizing: border-box; } js window.onresize = window.onload

    6.1K10

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

    适配方案 一、 css预处理语言 媒体查询 rem 二、 flexible.js rem 动态设置html标签font-size的大小 案例 如果设计稿是750px 2.假如我们把整个屏幕划分为15等份...(这里的标准是指以哪个尺寸的设计稿算出来的font-size值) rem配合 flexible.js 使用第一种方式有点麻烦 如下代码 很多媒体查询 /* 设置常见屏幕尺寸,修改html文字大小*/ /...10rem / @baseFont } } 每次设计到高宽都要除下font-size 解决办法是通过flexible.js github 它是手机淘宝团队出的简洁高效移动端适配库 我们不需要在写不同屏幕的媒体查询...75px(750px/10)就可以 里面页面元素rem值:页面元素的px值 / 75 剩下的交给flexible.js 如下 html{ font-size: 20px!...important; } } 如果不添加这个代码在电脑上看上去会非常的大,显示不好看,因为我们只做了移动端的布局 到这里我们就可以直接按照设计稿进行编码了,并且实现自动适应 最后感谢pink老师 https

    2.1K20

    可爱的rem

    嗯,这个知识点还是一丢丢的 本博文的重点不是这个~ 是的,我们可以使用REM来进行适配啊:可以说是目前最强的移动端适配方案... rem是什么 rem和em单位一样,都是一个相对单位,不同的是em是相对于父元素的...font-size进行计算,rem是相对于根元素html的font-size进行计算的,这样一来rem就完美的绕开了复杂的层级关系,实现了类似em单位的功能。...见下: rem自适应处理方案 使用rem布局的时候,为了兼容不同的分辨率,我们应该要动态的修正根字体的大小,让所有的用rem单位的子元素跟着一起缩放,从而达到自适应的效果。...(function(){ var devicePixelRatio = window.devicePixelRatio || 1; })(); 复制代码 嗯,在移动端上面适配,rem和viewport...完整代码片段如下: 复制代码 (function(){ var fontSizeMatchDeviceWidth =

    91120

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

    在做移动端适配的时候,很多人第一反应就是使用 rem ,通过动态设置 html 上的 font-size 来进行页面的自适应,基本原理就是 rem 表示的是 root em ,页面中所有的值都是基于...em 的缩写,rem 不是相对于当前元素,而是相对于根元素,所以,不论什么位置,使用 rem 单位都是相对于根元素的 font-size 实际使用的选择性 既然 rem 这么好用,并且不存在 em 那么复杂的计算逻辑...,是不是在项目中我们都用 rem 就好了呢?...等等,这样统一的字号标准,让页面不论是缩放还是适配都游刃有余,所以当你拿捏不准使用什么方式来设置一些元素的时候,就按照上述的来,一般是没有什么问题的 使用 js 设置根元素 rem 自从有了 rem...这个便捷的相对单位,我们就有了一些奇怪的操作,比如用 js 设置根元素大小这个操作,就是将网页的根元素字号根据屏幕的大小动态设置为一个固定值,然后在页面中根据 ui 给出的图,换算成 rem 值,进行各种适配

    6.5K41

    rem 布局原理

    rem:相对于根元素(即 html 元素)font-size 计算值的倍数。 通俗的说,1rem = html 的 font-size 值 这段代码。...html{font-size:100px;} a{font-size:.5rem;} 如何使用 rem 进行布局?...1.标签的 rem 单位的值怎么计算 通过使用 rem + js 改变 html 标签的 font-size(整体缩放)实现兼容性更高的页面下面来举个例子, 当我们拿到的设计图是 750px 的时候,...当屏幕 750px 的时候,html 的 font-size 值是 100px;窗口大小变化的时候,可以通过js 获取到窗口大小。...这时候获取到一个比例 750:100=获取到的屏幕大小:html 标签的 px 单位的值以下 js 代码,用于实现根据获取到的屏幕大小,动态修改 html 标签的 px 单位的值 <script

    1.5K30

    rem响应式布局-自动将px转换为rem--px2rem插件的使用

    当你在项目中采用rem做响应式页面的时候,如果代码里面写的是rem单位的话,会不好判断各种距离、宽高的具体数值,下面介绍一款插件:px2rem,使用此插件可以在代码里依然写px,启动项目会自动将...),在util文件夹下新建rem.js文件,内容如下: // rem等比适配配置文件 // 基准大小 const baseSize = 16 // 设置 rem 函数 function setRem...window.onresize = function() { setRem() } 第三步 在项目main.js中引入此文件import '..../util/rem' 第四步 在项目根目录新建vue.config.js文件(如已有请忽略),并在其中添加如下代码 // 引入等比适配插件 const px2rem = require('postcss-px2rem...') // 配置基本大小 const postcss = px2rem({ // 基准大小 baseSize,需要和rem.js中相同 remUnit: 16 }) // 使用等比适配插件

    91310

    rem适配布局

    rem 适配布局 rem 单位 rem 是根 em(root em)的缩写,是相对于根元素(html 元素)的字体大小。...rem 作用于非根元素字体大小时,相对于根元素字体大小;rem 作用于根元素字体大小时,相对于其初始字体的大小。...需要大量看似没有逻辑的代码,CSS 冗余度较高 不方便维护及扩展,不利于复用 没有良好的计算能力 介绍 Less(Leaner Style Sheets 的缩写)是一门 CSS 扩展语言,成为 CSS...大大简化了 CSS 编写,并且降低了 CSS 的维护成本,可以实现用更少的代码完成更多的事。 总结:Less 是一门 CSS 预处理 1 语言,它扩展了 CSS 的动态特性。...1: less 媒体查询 rem 插件 easy less rem 适配方案 2: flexible.js rem 插件 cssrem 参考: pink 老师前端入门教程

    1.4K30

    rem适配布局

    CSS 需要书写大量看似没有逻辑的代码, CSS冗余度是比较高的。 不方便维护及扩展,不利于复用。...CSS没有很好的计算能力 非前端开发工程师来讲 ,往往会因为缺少CSS编写经验而很难写出组织良好且易于维护的CSS代码项目。...为单位的值; 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

    rem与em详解

    rem与em详解 em 和 rem都是灵活、 可扩展的单位,由浏览器转换为像素值,具体取决于您的设计中的字体大小设置。...Em 和 rem 单位提供的这种灵活性和工作方式都很相似,所以最大的问题是,我们何时应使用 em 值,何时应使用 rem 值呢?...rem 单位如何转换为像素值 当使用 rem 单位,他们转化为像素大小取决于页根元素的字体大小,即 html 元素的字体大小。 根元素字体大小乘以你 rem 值。...为什么使用 rem 单位: Rem 单位提供最伟大的力量并不仅仅是他们提供一致尺寸而不是继承。...媒体查询中使用 rem 单位 不要在多列布局中使用 em 或 rem -改用 %。 不要使用 em 或 rem,如果缩放会不可避免地导致要打破布局元素。

    4.7K30

    JS代码混淆 | js 逆向系列

    /UglifyJS/ https://github.com/LiPinghai/UglifyJSDocCN/blob/master/README.md 使用方法 npm install uglify-js...-g uglifyjs example.js -c -m --mangle-props -c 代码压缩 -m 代码混淆 --mangle-props 混淆属性名 -b 美化显示 // 原代码 const...JShaman https://www.jshaman.com/ JShaman 是国内公司开发的js代码加密商业产品 免费版可以直接使用 // 原代码 const person = { age...,通过数组、字典等各种形式存储、拼接、替换等,最终进行还原,这里面没有利用到复杂的语法以及js 语言本身的特性,所以我们一点点解开也学不到什么; 这个代码就不一样了,我们一步一步解开它,尝试去学习其中的思路...console.log(c) 这次我们设计三个返回值,分别是函数定义、数值、字符串 看到这,我都蒙了,经过查询资料,我找到了两个维度的复杂的原因 JavaScript 中函数只能有一个返回值,你就说这玩意如果没学过 js

    2.4K10

    调试JS代码

    记录下近期对JS代码的调试过程 性能分析 启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面 目前主要使用的功能有: Performance....性能评估,比如我想看下页面刷新的性能瓶颈所在,先点击 按钮,然后进行页面操作,当页面刷新完成,再点击 按钮,则会生成性能报告,可以看到资源消耗,JS代码的执行逻辑等 Sources....性能报告页面的 部分,可以通过点击色块查看其所在的js代码文件,如 点击则会跳转到 功能栏,有了源文件就可以进行断点调试;这里注意部分js文件是压缩后的文件,建议手动修改程序替换成可读性更强的原始代码文件...查看程序的打印输出,比如我想知道某个函数的执行时间,可以在js代码中进行修改 当js代码执行之后,可以在console输出中看到foo的执行时间 Network....代码使用for循环进行操作,也就是线性复杂度,计算耗时随数据量的增大而线性增大 通过debug观察发现颜色数组会有不少重复的数值,而同样的输入会导致相同的输出,然后对整个数据的1M个点进行统计分析,发现重复率相当高

    19K10

    js代码规范

    前言 在js代码开发中,我简单的总结出了以下规则,后面会陆续补充并且对规范进行分类。...js代码建议保存到后缀名.js的文件中 js代码不建议放在html中,原因有:不能被缓存,会增大网页文件的大小,可维护性不高,会影响页面的加载。...js吧任何表达式都当一条简单语句,会导致一些隐性的错误。如果自己没加分号,那么js解释器会自动添加分号,按照自己能读懂的断句。 9.2 复合语句 也称为语句块,被包在大括号内部。...比如对象 var obj={} ;var arr=[] eval eval是最容易混乱使用的js函数,他可以执行内部入参的js函数或者表达式,可以直接解析变量。不建议使用 。...尽量使用语法严格模式 消除代码之中的不友好;代码运行更快 ;保证运行的安全 ;为新版本的js做好铺垫。 22.

    8.9K30
    领券