山海科技发展网

07月02日科技常识:移动端布局方案 简单高效 完美适配各种机型

导读 摘要 今天小编跟大家讲解下有关移动端布局方案 简单高效 完美适配各种机型 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有...
摘要 今天小编跟大家讲解下有关移动端布局方案 简单高效 完美适配各种机型 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关移动

今天小编跟大家讲解下有关移动端布局方案 简单高效 完美适配各种机型 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关移动端布局方案 简单高效 完美适配各种机型 的相关资料,希望小伙伴们看了有所帮助。

第一步:使用淘宝的lib/flexible+rem布局

原理:

rem布局:使用rem作为元素大小的单位 rem=fount-size 根据不同的屏幕宽度设置不同的fount-size值 这样元素也会跟着屏幕变大或变小

lib/flexible:

通过js查询屏幕大小 设置viewport标签的同时始终将fount-size设置为屏幕宽度的1/10。

我们也应该将设计稿分成1/10与之对相应

由此得到1rem=屏幕宽度的1/10=设计稿的1/10

如果设计稿大小为750px 则1rem=75px

比如在设计稿上量到一个宽度为150的元素 可以通过150/75得到此元素在设备中的宽度为2rem

用法:

去掉html中的viewport标签 vue项目在public/index.html中操作

vue项目中在main.js中引入flexible

import ' lib/flexible/flexible.js '

引入后就实现了动态设置fount-size和viewport标签了 接下来我们只要在项目中以rem为单位写样式就可以了 但是每次都要手动计算rem太麻烦 可以使用插件postcss-px2rem-exclude

第二步:使用postcss-px2rem-exclude将px转换为rem

使用此插件后 它会将px按照我们配置的比例来转换成rem

用法:

安装:cnpm install postcss-px2rem-exclude -S

配置:安装插件后在package.json添加如下代码

"postcss": {    "plugins": {    "autoprefixer": {},   "postcss-px2rem-exclude": {    "remUnit": 75,//你的设计稿的宽度的1/10为多少px此处就填多少 一般设计稿为750px"exclude": "/node_modules|floder_name/i"   //如果你使用了第三放ui库 将它添加到此处 以免冲突   }    }    },使用:1、需要使用rem单位的直接写px即可2、强制使用px为单位如fount-size:font-size: 28px; /*px*/ 编译后会生成适应三种dpr的大小[data-dpr="1"] .selector {   font-size: 14px;}[data-dpr="2"] .selector {   font-size: 28px;}[data-dpr="3"] .selector {    font-size: 42px;}3、不需要转换的如1像素边框:border: 1px solid #ddd; /*no*/到此我们就可以按照设计稿的大小以px为单位进行开发了 不过flexible不兼容ipad 所以我们还要加一部第三步:在html的head中加入适配ipad的script标签

直接赋值粘贴就行

<script>/(iPhone|iPad|iPhone OS|Phone|iPod|iOS)/i.test(navigator.userAgent)&&(head=document.getElementsByTagName('head'),viewport=document.createElement('meta'),viewport.name='viewport',viewport.content='target-densitydpi=device-dpi, width=480px, user-scalable=no',head.length>0&&head[head.length-1].appendChild(viewport));</script>

这样下来几乎所有的移动端都能适配了

来自:https://www.cnblogs.com/yuanlichao/p/11564115.html?utm_source=tuicool&utm_medium=referral

来源:爱蒂网