今天接触到一个PC端的页面,给的设计稿是1920的,并且要求适应屏幕宽度,
所以查了下rem。发现用起来很方便。
rem
rem是指相对于根元素字体大小的单位,一个相对单位。rem可以做到随着根元素的字体大小随之变化,达到自适应屏幕的效果
用法
在head中加入meta
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
代表宽度是设备宽度,同时不允许缩放。
然后给html根元素设置 font-size为100px,这样会方便后面的换算
然后再在JS中加入
var deviceWidth
setHtmlFontSize()
if (window.addEventListener) {
window.addEventListener('resize', function () {
setHtmlFontSize()
}, false)
}
function setHtmlFontSize () {
// 1920是设计稿的宽度,当大于1920时采用1920宽度,比例也是除以19.20
deviceWidth = document.documentElement.clientWidth > 1920 ? 1920 : document.documentElement.clientWidth
document.getElementsByTagName('html')[0].style.cssText = 'font-size:' + deviceWidth / 19.20 + 'px !important'
}
还有一个方便px转rem的插件
因为我用的是vscode编辑器,可以在里面添加一个px to rem,然后ALT+Z就能把选中的PX自动换算为rem,不过记得要更改他的默认设置,他默认设置是16px,把改为100px就可以了。
以上方法是我从百度中学习而来的,用在项目中很完美适配。
网友评论