rem计算适配

简介: rem计算适配

 建议在CSS引入之前引入下面这段JS代码,比例1rem:100px。

用了这个JS就不用在CSS内写N多个@media screenXXX了。

说明:

  • 在html内最外层元素给max-width:640px,min-width:320px
  • 元素宽高都以rem为单位就会自动缩放
  • 字体大小一般0.2rem-0.34rem,如>h3:font-size:0.3rem,h4:font-size:.28rem,p:font-size:.2rem一般这几个够用了.
  • 引入img标签时候该img必须float或者给一个属性(vertical-align: middle;display:block)否则其与父元素有20多px的margin-bottom
  • 如img想自适应需要给个宽度,宽度可以百分比,可以rem为单位给固定宽度,比如img实际宽度100px,用此JS后想自动缩放,可以css里给该img{width:1rem},其他元素雷同。
  • 如果有用到input时候,该input得浮动或者以rem为单位给固定宽度和高度,不然占据行高很大,出现元素占据位置大时候,float一下即可
  • 复制代码
    (function (doc, win) {
                    var docEl = doc.documentElement,
                        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
                        //orientationchange 事件是在用户水平或者垂直翻转设备(即方向发生变化)时触发的事件。
                        //resize事件是屏幕缩放时候触发的事件
                        recalc = function () {
                            var clientWidth = docEl.clientWidth;
                            if (!clientWidth) return;
                            if(clientWidth>=640){
                                docEl.style.fontSize = '100px';
                            }else{
                                docEl.style.fontSize = 100 * (clientWidth / 640) + 'px';
                            }
                        };
                    if (!doc.addEventListener) return;
                    win.addEventListener(resizeEvt, recalc, false);
                    doc.addEventListener('DOMContentLoaded', recalc, false);
                    /*DOMContentLoaded是firefox下特有的Event, 当所有DOM解析完以后会触发这个事件。
                    DOMContentLoaded事件本身不会等待CSS文件、图片、iframe加载完成。
                    它的触发时机是:加载完页面,解析完所有标签(不包括执行CSS和JS),
                    并如规范中所说的设置interactive和执行每个静态的script标签中的JS,然后触发。
                    而JS的执行,需要等待位于它前面的CSS加载(如果是外联的话)、执行完成,
                    因为JS可能会依赖位于它前面的CSS计算出来的样式。*/
                })(document, window);
目录
相关文章
umi 中如何使用 px2rem 插件做rem适配
在umi的src下面创建两个文件app.ts和document.ejs
307 0
|
12天前
|
编解码 前端开发 UED
响应式设计中 rem 单位的优势
【10月更文挑战第24天】rem 单位在响应式设计中展现出了诸多优势,使得我们能够更轻松地实现布局的灵活性、适应性和一致性。它为我们打造高质量的响应式网页提供了有力的支持,成为了响应式设计中不可或缺的重要单位。
|
6月前
|
前端开发
解决适配375像素宽度667像素高度移动端方法:推荐一款非常好用的px转rem单位的VSCode插件px to rem & rpx (cssrem)
解决适配375像素宽度667像素高度移动端方法:推荐一款非常好用的px转rem单位的VSCode插件px to rem & rpx (cssrem)
|
5月前
|
前端开发
|
4月前
|
前端开发
大屏自适应/适配方案【详解】(echarts自适配、rem、flexible.js、vscode中px2rem插件自动计算rem)
大屏自适应/适配方案【详解】(echarts自适配、rem、flexible.js、vscode中px2rem插件自动计算rem)
603 0
|
11月前
|
前端开发 JavaScript 容器
overflow和动态计算高度
overflow和动态计算高度
68 0
|
前端开发 搜索推荐
理解 rem 方案原理
在适配不同屏幕尺寸的设备时采用等比缩放的方案
202 0
理解 rem 方案原理
|
前端开发 JavaScript Android开发
|
Web App开发 前端开发 JavaScript
动态REM
动态REM