先来抛出一个简单的问题:
如果我们的750的设计稿上面,有一个375px,那么这个元素在750的屏幕上面就是宽度的一半,那么,如果我们设置为375px,在375px的设备上面,就沾满了屏幕,而不是屏幕的一半了,那我们应该如何实现呢?
大家不要说用百分比,我们也不讨论视口宽度单位,我们今天聊一聊rem这个单位。
rem 是 CSS 中的一个长度单位,全称是 “root em”。它是相对于根元素(即HTML元素)的字体大小来计算的。例如,如果 HTML 元素的字体大小是 16px,那么 1rem 就等于 16px。如果 HTML 元素的字体大小改变,那么使用 rem 作为单位的元素的大小也会相应地改变。
那么,我们在750的设备上面,更元素的字体大小设置为100,就是1rem=100px,在375的设备上面,设置为50,就是1rem=50px,这样,我们就可以实现不同设备上面的元素宽度自适应了。
1 | function setRem() { |
这时候我们就实现了动态设置根元素的字体大小,但是,我们总不能去写代码的时候,一直去计算rem的值,这样太麻烦了,那么,我们就可以使用postcss-pxtorem这个插件来帮助我们实现这个功能。
1. 安装postcss-pxtorem
1 | npm install postcss-pxtorem --save |
2. 配置postcss.config.js
1 | // vite.config.ts |
1 | <div class="box"></div> |
此时就实现是,在小于1200px的,永远都是保持的屏幕的一半。