移动端布局备忘

一 :meta头

1、viewport 固定宽度640 target-densityDpi已经淘汰,这种写法主要面向微信端,因为宽度写死,所以就无法进行响应式布局。

<meta name="viewport" content="width=640, user-scalable=no,target-densityDpi=device-dpi">

 如果背景图需要平铺的话就需要用js对背景图进行拉取回

*{ margin:0; padding:0;}
#main{ 640px; height:960px; position:relative; overflow:hidden;}
#list{}
#list > li{ 100%; height:100%; position:absolute; left:0; top:0; background-size:cover;}
#list > li:nth-of-type(1){ background-image:url(img/b.png);}
$(function(){
    var $main = $('#main');
    var $list = $('#list');
    var $li = $list.find('>li');
    var desW = 640;
    var desH = 960;
    var viewHeight = $(window).height();
    
    $main.css('height',viewHeight);
    
    function nowWidth(){
        var w = desW/desH * viewHeight;
        return w;
    }
    
    $li.css('backgroundPosition',( (desW - nowWidth())/2 )+'px 0');
    
});

2、设备宽度(设置屏幕分辨率等于设备分辨率)

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

 3、像素比(动态设置缩放比例)

window.devicePixelRatio

 4、动态设置像素比 淘宝也是这么写的

            var iScale = 1;
            iScale = iScale / window.devicePixelRatio;
            console.log(iScale);
            document.write('<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=' + iScale + ',minimum-scale=' + iScale + ',maximum-scale=' + iScale + '">')
        

 5、百度移动是如何写的呢

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

 二:布局

1、header,section,footer 为块级元素 不需要设置宽度。

2、em  指容器大小除以容器内字体大小后的比例如容器大小300px而字体大小36px 则 其宽度用em表示为width:6.25em

3、rem:1rem=html的字体大小如html中font-size:20px; div{10rem;}则div的宽度为200px;

var iWidth = document.documentElement.clientWidth;
iWidth=iWidth>1620?1620:iWidth; document.getElementsByTagName(
'html')[0].style.fontSize = iWidth/16 + 'px';
.item {
 7.5rem;
height:7.5rem;
margin:0.5rem   
}

显示300px /40 = 7.5rem

边距10px/40 = 0.25rem

4、背景图大小 background:url(); background-size:100% 1.4em;

5、清除a标签默认点击带背景层样式

a{
                -webkit-tap-highlight-color:transparent;
            }
            input {-webkit-appearance:none;/*去除input默认样式*/}

6、清除浮动

.clearfix{
                *zoom:1
            }
            .clearfix:after{
                content: "";
                display: block;
                clear: both;
            }
原文地址:https://www.cnblogs.com/junwu/p/5235894.html