动态REM

1、什么是REM

动态 REM 是手机专用的自适应方案!

我们来了解下常见的长度单位:

  1. px:表示像素,是相对于显示器屏幕分辨率而言的相对长度单位;
  2. em:相对长度单位,这个单位表示元素的 font-size 的计算值。如果用在 font-size 属性本身,它会继承父元素的 font-size。也可以理解为 em 指字体高度,浏览器的默认字体为 16px,所以未经调整的浏览器都符合 1em=16px。1em 指的是一个字体的大小,它会继承父级元素的字体大小,因此并不是一个固定的值;
  3. rem:这个单位代表根元素的 font-size 大小(例如 <html> 元素的 font-size)。当用在根元素的 font-size 上面时 ,它代表了它的初始值。例如:设置 html { font-size: 20px } 时,其他元素 1rem = 20px5rem = 100px
  4. vh:viewport height 视口高度,100vh = 视口高度
  5. vw:viewport width 视口宽度,100vw=视口宽度,1vw 等于 window.innerWidth 的 1%。例如:设备物理宽度为 375px 时,1vw = 3.75px

12px 法则:网页默认的 font-size 为 16px,而 chrome 默认的最小字号为 12px,如果将 font-size 设置为 12px 以下,一律按 12px 显示!


2、JS动态调整REM

添加如下示例代码:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
var pageWidth = window.innerWidth    // 获取页面的宽度
console.log(pageWidth)
document.write('<style>html{font-size:'+pageWidth+'px}</style>')    // 将html字体大小设置为页面的宽度

3、将px自动变为rem

大致步骤如下:

  1. 切换淘宝源:
npm config set registry https://registry.npm.taobao.org/
  1. 编辑bashrc:
vi ~/.bashrc
  1. 并添加如下内容:
export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"
  1. 安装node-sass:
npm i -g node-sass
  1. 创建文件夹及文件
mkdir ~/Desktop/scss-demo
cd ~/Desktop/scss-demo
mkdir scss css
touch scss/style.scss
start scss/style.scss
  1. 运行:
node-sass -wr scss -o css
  1. 在style.scss头部添加如下代码:
@function px2rem($px) {
    @return $px/$designWidth+rem;
}

$designWidth : 640;    //设计稿宽度
  1. 运行
    最后运行 node-sass -wr scss -o css,就可以看到生成了一个 style.css 的文件,并且把 px 变为了 rem;

4、参考链接

示例代码 - Github

CSS的值与单位 - MDN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值