模仿手淘rem移动端自适应方案
根据m.taobao.com的移动端rem自适应方案, 将页面宽度分为10等分, 1rem = html.style.fontSize = pageWidth / 10
下载对应版本的flexible.js到您的项目中
https://github.com/YDJ-FE/mtb-flexible/releases
在html的head
标签, 添加script引用
<script src="{your js path}/flexible.js"></script>
然后页面会自动添加移动端的meta标签,声明viewport
属性(默认开启高清方案, 无需手动声明viewport)
并且自动设置html的一些必要属性,例如data-dpr
,font-size
等等
例如:
<html lang="en" data-dpr="1" style="font-size: 54px;">
脚本运行成功后, 会产生对象: window.lib.flexible
自行查看window.lib.flexible中提供的属性和方法
脚本默认开启高清dpr方案, 例如在iphone6高清屏上, dpr
会设置为2, initial-scale
, minimum-scale
, maximum-scale
都会变成0.5, 那么对应页宽是750px
, 这种情况下无法使用大部分移动端UI框架(px布局),
如果需要兼容使用UI框架,需要添加以下标签到head
标签里面
<meta name="flexible" content="initial-dpr=1, maximum-dpr=1">
或者,强制声明viewport
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-sacle=1, user-scalable=no">
样式处理:
-
less
和scss
可以自己编写function进行换算, 也可以通过postcss
后续处理 -
css
自己通过编辑器插件工具换算活着通过postcss
处理 -
postcss插件: https://github.com/cuth/postcss-pxtorem
-
npm run build
开发构建, 自动监听变化
-
npm run qn
部署cdn