美文网首页
使用rem作为css响应式布局单位

使用rem作为css响应式布局单位

作者: 手指乐 | 来源:发表于2019-10-18 15:29 被阅读0次
  • rem是以根元素(html)的字体大小为基准

  • 要做到响应式,先设置html根元素的fontsize,并且让其能根据浏览器视口(viewport)大小而改变
    可以定义一个rem.js

(function(doc, win) {
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function() {
            var clientWidth = docEl.clientWidth;
            if (!clientWidth) return;
            docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
        };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
  1. 定义一个function并调用自己,传入document和window两个参数
  2. document.documentElement == document.querySelector('html'),获取html元素,由于fontsize的继承性,所有元素默认fontsize都取这个
  3. 监听屏幕旋转、resize、DOMContentLoaded事件,发生这些事件,则重新根据新的视口大小调整根元素的fontsize
  4. 网页中要定义viewport的宽度为device-width,把viewport大小设置为设备的逻辑宽度,否则viewport会固定为一个值(iphone手机浏览器是980),就做不到响应式了
  5. 此处设置在设备逻辑宽度为320的机器上,根元素的fontsize为20px
  6. 一个元素高度要设置为40px,只需要考虑逻辑宽度为320的机器,设置为2rem即可,其他逻辑宽度的机器或按比例缩小或放大
  • 在入口js中引入rem.js
    main.js
...
import './config/rem'
...

import './config/rem' 作用不是引入模块(这里不需要引入模块),只会执行一遍rem.js

相关文章

  • 使用rem作为css响应式布局单位

    rem是以根元素(html)的字体大小为基准 要做到响应式,先设置html根元素的fontsize,并且让其能根据...

  • 前端技能

    HTML 常用标签/分类/属性 标签的分类 CSS 布局:position、float 响应式布局:rem布局(移...

  • 移动端适配方法

    1 2 rem布局,把所有单位用rem代替 3 flexbox布局,用弹性盒子的方式,达到响应式效果 这个...

  • REM等比缩放布局 ------ 2020-03-22

    1、PC端和移动端用同一套项目: 2、CSS常用的单位: 3、px的理解: 4、REM响应式布局开发

  • rem与em区别

    响应式Web设计—px-em-rem三者区别及rem的使用在css中单位长度用的最多的是px、em、rem,这三个...

  • webpack移动端px自动转化为rem

    CSS媒体查询实现响应式布局 缺点:需要写多套适配样式代码 rem相对单位 原理:页面渲染时动态计算根元素的fon...

  • CSS基础布局

    CSS布局 盒模型 Flexbox 使用float布局 inline-block 布局 响应式设计和布局 CSS面...

  • grid实现响应式布局

    一行 CSS 代码实现响应式布局 – 使用 Grid 实现的响应式布局 在这篇文章中,我将教你如何使用 CSS G...

  • web前端课程技术分享之关于rem布局和vw布局的理解

    通过rem来实现响应式布局: 首先来看,什么是rem单位。rem是一个灵活的、可扩展的单位,由浏览器转化像素并显示...

  • 我的前端技能树

    HTML 常见标签和属性 HTML5 CSS 常用选择器 常用样式和布局 响应式布局(了解,并不熟悉) rem 的...

网友评论

      本文标题:使用rem作为css响应式布局单位

      本文链接:https://www.haomeiwen.com/subject/zggimctx.html