rem布局教程最详细(菜菜出品,必出菜品第二季)

简介: rem布局教程最详细(菜菜出品,必出菜品第二季)

rem主要是作用于手机适配使用,创建一个rem.js文件

创建好rem.js文件,然后在需要使用的页面进行引入

//rem.js
    (function (doc, win) {
 
      var isAndroid = win.navigator.appVersion.match(/android/gi);
      var isIPhone = win.navigator.appVersion.match(/iphone/gi);
 
      var scale = 1.0;
      var ratio = 1;
      if(isIPhone) {
        if (window.devicePixelRatio == 2) {
          scale *= 0.5;
          ratio *= 2;
        }
        if (window.devicePixelRatio == 3) {
          scale *= (1/3);
          ratio *= 3;
        }
      }
      var text = '<meta name="viewport" content="initial-scale=' + scale + ', maximum-scale=' + scale + ',' + ' minimum-scale=' + scale + ', width=device-width,' + ' user-scalable=no" />';
      document.write(text);
 
      var docEl = doc.documentElement
      var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
      var recalc = function () {
        var clientWidth = docEl.clientWidth
        if (!clientWidth) return
        docEl.style.fontSize = 100 * (clientWidth / 750)  + 'px'
 
        // 解决部分rem特别大的问题
        var docElFontSize = docEl.style.fontSize.replace(/px/gi, '')
        var computedFontSize = win.getComputedStyle(docEl)['font-size'].replace(/px/gi, '')
        docElFontSize != computedFontSize && (docEl.style.fontSize = docElFontSize * docElFontSize / computedFontSize + 'px')
      }
      if (!doc.addEventListener) return
      recalc()
      win.addEventListener(resizeEvt, recalc, false)
    })(document, window);
相关文章
|
JavaScript
VUE里的find与filter使用与区别
VUE里的find与filter使用与区别
1835 0
|
设计模式 存储 Java
深拷贝与浅拷贝,就是这么简单
深拷贝与浅拷贝,就是这么简单
|
存储 人工智能 前端开发
深拷贝浅拷贝的区别?如何实现一个深拷贝?
深拷贝浅拷贝的区别?如何实现一个深拷贝?
502 0
|
11月前
|
IDE Linux Shell
Linux系统巡检常用命令
Linux系统需定期巡检,如同“体检”,及时发现软硬件问题,降低故障风险。常用命令涵盖系统、硬件、网络、进程、用户等方面状态查看,全面掌握服务器运行情况,保障系统稳定高效。
|
10月前
|
运维 监控 Linux
Linux中收集【系统】和【硬件】信息的30个常用命令总结
本文系统梳理30个Linux运维核心命令,涵盖系统信息(如`uname`、`hostname`)、硬件诊断(如`lscpu`、`smartctl`)及日志监控(如`dmesg`、`journalctl`)等全场景需求,助力高效排查故障、优化性能与实现自动化运维。
1413 2
|
安全 Linux 网络安全
Docker部署ssh连接工具webssh2
【8月更文挑战第2天】Docker部署ssh连接工具webssh2
2432 6
Docker部署ssh连接工具webssh2
Vue3时间轴(Timeline)
这是一个基于 Vue2 的时间轴(Timeline)组件,支持多种自定义属性,包括时间轴内容数组 `timelineData`、总宽度 `width`、线条样式 `lineStyle`、模式 `mode` 和位置 `position`。时间轴内容数组包含描述 `desc` 和圆圈颜色 `color`。组件提供了丰富的样式选项,如虚线、居中显示等,并支持内容交替展现。适用于多种场景下的时间轴展示需求。
2032 1
Vue3时间轴(Timeline)
|
JavaScript
vue + d3.js(v6) 绘制【树状图/思维导图】可折叠/展开,可点击跳转,可带标签
vue + d3.js(v6) 绘制【树状图/思维导图】可折叠/展开,可点击跳转,可带标签
2151 1
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
2963 2
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
|
Linux
Linux 系统日常巡检脚本 干货
Linux 系统日常巡检脚本 干货
807 0