别废话,先看最终的适配效果:
Mobile 长这样:css
PC 长这样:html
嗯,还行,能看。
固然仍是先安装 amfe-flexible,建议用 npmwebpack
npm i amfe-flexible -S
而后在项目入口引入git
import 'amfe-flexible'
若是不想使用 npm,那就用这个 script 引入github
<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js" />
为了与设计稿 px 单位一致,还须要一个 px 转 rem 的工具来帮忙web
npm i postcss-pxtorem -D
配置好 webpack 的 postcss 插件npm
"postcss": { "plugins": { "postcss-pxtorem": { "rootValue": 37.5, // 这里根据设计稿宽度自定义,常见 37.5 或 75 "propList": [ "*" ] } } }
这样就能够直接用 px 单位,省去换算 remjson
移动端虽然正常,但浏览器看发现比例偏大,因此咱们还得让 PC 给我缩回去浏览器
思路比较简单,用媒体查询,大屏幕就重置根字体,给个最大缩放宽度工具
@media screen and (min-width: 750px) { html { font-size: 100px !important; // 这里加权重是由于 amfe-flexible 经过行内样式设置了根字体 } body { max-width: 500PX; // 顺带提下,这里也能够小写 px,大写 PX 能够让 postcss-pxtorem 忽略转成 rem margin: 0 auto; } }
就这样吧