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 API 开发者
vue自定义Hooks函数使用和封装思想
【8月更文挑战第8天】vue自定义Hooks函数使用和封装思想
549 1
|
弹性计算 监控 安全
阿里云服务器自带多少DDoS防护?小编为你详细揭秘!
阿里云服务器自带多少DDoS防护?小编为你详细揭秘!
|
编解码 前端开发 JavaScript
前端:Rem 及其转换原理
Rem是一种用于前端开发的相对字体大小单位,它基于根元素的字体尺寸来定义文本大小,有助于实现响应式布局和可维护性。Rem的转换原理是通过相对于HTML根元素的字体大小来设置子元素的字体大小,从而实现统一的比例调整,提高页面的适应性和灵活性。此方法简化了跨浏览器和设备的布局调整,增强了用户体验。
|
存储 缓存 安全
在 Service Worker 中配置缓存策略
Service Worker 是一种可编程的网络代理,允许开发者控制网页如何加载资源。通过在 Service Worker 中配置缓存策略,可以优化应用性能,减少加载时间,提升用户体验。此策略涉及缓存的存储、更新和检索机制。
|
JavaScript 数据可视化 开发者
echart:所有类型的图
本文档介绍了基于 Vue 3 的 ECharts 基础代码示例,包括柱状图、折线图、饼状图、环状图、散点图和雷达图的配置和使用方法。每个图表类型都提供了详细的代码示例和配置说明,帮助开发者快速上手并实现各种图表展示效果。
495 0
|
安全 Linux 网络安全
Docker部署ssh连接工具webssh2
【8月更文挑战第2天】Docker部署ssh连接工具webssh2
1340 6
Docker部署ssh连接工具webssh2
|
机器学习/深度学习 自然语言处理 数据可视化
LlamaFactory可视化微调大模型 - 参数详解
LlamaFactory可视化微调大模型 - 参数详解
4523 4
|
设计模式 Java 测试技术
分层设计:Service 层真的需要实现接口吗?
【8月更文挑战第4天】在软件开发领域,分层设计是一种广泛应用且高效的设计模式,它通过将系统划分为不同的逻辑层(如表现层、服务层、数据访问层等),来提高代码的可维护性、可扩展性和可测试性。其中,Service层作为业务逻辑处理的核心,其设计尤为重要。那么,Service层是否真的需要实现接口呢?这个问题值得我们深入探讨。
474 8
|
JavaScript 应用服务中间件 nginx
Vue项目部署Nginx后,刷新页面出现404问题
Vue项目部署Nginx后,刷新页面出现404问题
416 0