移动端的各种适配

        最近有点伤心,所以写几篇文章来抚慰一下自己受伤的心灵,装个逼,也许装的不成功但是至少装上了,装完就跑,想想就令人激动。

移动端的适配这是今天像装逼的对象

1.流式布局

        对于流式布局可以这样理解,宽度用的百分比、高度固定。但是这样一想就有问题啊。在iphone6下简直完美,但是一到那个iphone8PS下面就有点难看了。想想原因就是因为长度变化了高度没有变化引起的...

2.使用ViewPort 

viewport 是用在meta标签上的 :

<meta name="viewport" content="width=device-width,maximum-scale=1.3,user-scalable=no">

device-width 表示宽度是设备屏幕的宽度

maximum- scale 指的是能够放大的比例

user - scalable 指的是用户能否进行缩放

3.固定宽度

        这个我就不说了...

4.响应式做法

        @media 媒体查询做法,很累的

5.最后就是我经常用的rem

        rem 的原理就是给HTML标签设置一个font-size 然后按照设计稿的尺度除以html的font-size就好了

        html {

            font -size:20px

        }

        设计稿上假设在750宽度下量出来button的高度是150px 那么对应的rem就是

        150*2*20 = 3.75rem 除以二是因为设计稿的PX数一般是真正手机上的两倍

        对应不同的手机一般使用JS做适配(css 对凌乱的安卓市场不适用)

        翠花上酸菜...哦,上代码

       这段js的最后面有两个参数记得要设置,一个为设计稿实际宽度,一个为制作稿最大宽度,例如设计稿为750,最大宽度为 750,则为(750,750)
(function(designWidth, maxWidth) {
var doc = document,
win = window,
docEl = doc.documentElement,
remStyle = document.createElement("style"),
tid;


function refreshRem() {
var width = docEl.getBoundingClientRect().width;
maxWidth = maxWidth || 540;
width&gt;maxWidth &amp;&amp; (width=maxWidth);
var rem = width * 100 / designWidth;
remStyle.innerHTML = 'html{font-size:' + rem + 'px;}';
}


if (docEl.firstElementChild) {
docEl.firstElementChild.appendChild(remStyle);
} else {
var wrap = doc.createElement("div");
wrap.appendChild(remStyle);
doc.write(wrap.innerHTML);
wrap = null;
}
//要等 wiewport 设置好后才能执行 refreshRem,不然 refreshRem 会执行2次;
refreshRem();


win.addEventListener("resize", function() {
clearTimeout(tid); //防止执行两次
tid = setTimeout(refreshRem, 300);
}, false);


win.addEventListener("pageshow", function(e) {
if (e.persisted) { // 浏览器后退的时候重新计算
clearTimeout(tid);
tid = setTimeout(refreshRem, 300);
}
}, false);


if (doc.readyState === "complete") {
doc.body.style.fontSize = "16px";
} else {
doc.addEventListener("DOMContentLoaded", function(e) {
doc.body.style.fontSize = "16px";
}, false);
}
})(750, 750);

 大神请手下留情


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值