移动端常见的一些问题

1、视口设置viewport  'width=device-width'

2、像素比 devicePixelRatio

3、常用meta设置

禁止识别电话号码

<meta name='format-detection' content="telephone=no,e-mail=no" />

拨打电话和发邮件

href = 'tel:'     href='mailto:'

清除点击阴影

 -webkit-tap-highlight-color: 颜色值

清除按钮圆角

-webkit-appearance:none

boder-radius:0;

默认字体:

所有设备都会有的英文字体:Helvetica  这个就够用了

文字缩放

-webkit-text-size-adjust:100%;

选中的文字

-webkit-user-select:none;  //在事件中再兼容安卓

其他问题

font-boosting   //文字过小,自动放大,人性化的设置,一段我们没有给它设置高度的时候,在webkit内核下,会被自动放大

解决方法: 1、设置高度

                 2、设置最大高度,max-height

干掉页面的额滚动条

html{height:100%,overflow:auto;}

body能左右拖动的问题,在body下面嵌套一个div{height:100%;overflow:auto}

适配的问题

% 高度不好确定

viewport initial-scale = 1.0

通过jq生成viewport  

var $w = window.srceen.width

var targetW = 320;

var meta = document.createElement('meta');

meta.name = 'viewport';

meta.content = '.......'

var scale =  $w/targetW

document.head.appendChild(meta)

rem适配

/*移动端默认样式css.css*/
*{
  margin:0;
  padding:0;
}
html,body{
  width:100%;    /*滚动条的设置*/
  height:100%;
  overflow: hidden;
}
a,input,button{
  -webkit-tap-highlight-color: raga(0,0,0,0);
}
input,button{
  -webkit-appearance: none;
  border-radius:0;
}
body{
  margin : 0;
  -webkit-user-select: none;
}
body *{
  -webkit-user-select: none;
  font-family: Helvatica;
}
body{
  -webkit-text-size-adjust:100%;
}
ul{
  list-style: none;
}
img{
  border:0;
  vertical-align: top;
}
@r : 50rem ;
#header{
  height: 103/@r;
  background:#ef3239;
  position: absolute;
  width:750/@r;      /*滚动条的设置*/
  top:0;
  left:0;
  border-bottom: 1px solid #a82d31;
  a{
    width: 128/@r;
    height:88/@r;
    position: absolute;
    top:0;
    color:#fff;
    text-align: center;
  }
  #task{
    left:0;
    span{
      font-size: 37/@r;
      line-height: 88/@r;

    }
  }
  h1{
    text-align: center;
    font-size:39/@r;
    color:#fff;
    line-height: 88/@r;
    margin:0;
    span{
      font-size:26/@r;
      margin-right:16/@r;
    }
  }
  #refresh{
    right:0;
    span{
      font-size: 36/@r;
      line-height: 88/@r;
    }
  }
  span{
    color:#fff;
  }
}

#nav{
  height:105/@r;
  width:750/@r;
  position: absolute;    /*滚动条的设置*/
  top:103/@r;
  background: #fdfdfd;
  border-top : 1px solid #b0b0b0;
  border-bottom:1px solid #ccc;
  box-sizing : border-box;
  a{
    float: left;
    width:25%;
    text-align: center;
    height:103/@r;
    font-size:35/@r;
    line-height:103/@r;
    color:#848689;
    vertical-align: middle;
  }
  .active{
    color: #f23838;
    span{
      font-size:36/@r;
    }
  }
  #spanBox{
    width:37/@r;
    display: inline-block;
    vertical-align: middle;
    span{
      float:left;
      font-size:26/@r;
    }
    .glyphicon-chevron-down{
       top:-3/@r;
    }
    .glyphicon-filter{
      font-size : 37/@r;
    }
  }
}
#wrap{
  position: absolute;
  top:208/@r;
  left:0;      /*滚动条的设置*/
  right:0;
  bottom:0;
  overflow: auto;
}
#list{
  li{
    height:278/@r;
    border-bottom:1px solid #e0e0e0;
    box-sizing: border-box;

  }
  a{
    padding : 23/@r 23/@r 22/@r;
    height:235/@r;
    display: block;

  }
  img{
    width:235/@r;
    height:235/@r;
    float: left;
  }
  .spanWrap{
    float: right;
    width:432/@r;

  }
  .sTitle{
    font-size:28/@r;
    line-height:44/@r;
    color:#333;
    margin-top:5/@r;
    display: block;
  }
  .sPrice{
    display: block;
    font-size:38/@r;
    line-height:64/@r;
    margin-top:31/@r;
    color: #bb0d02
  }
  .sComment{
    font-size:28/@r;
    line-height: 47/@r;
    display: block;
    color:#808080;
  }
}
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name='format-detection' content="telephone=no,e-mail=no" />
    <title>Document</title>
    <link rel="stylesheet" href="css/bootstrap.css">
    <link rel="stylesheet" href="css/css.css">
    <script>
        window.onload = function(){
            var html = document.documentElement;
            var hWidth = html.getBoundingClientRect().width;
            html.style.fontSize = hWidth/15 + 'px';
        }
    </script>
</head>
<body>
    <div id="header">
        <a id="task" href="javascript:;"><span class="glyphicon glyphicon-tasks"></span></a>
        <h1><span class="glyphicon glyphicon-lock "></span>我的商城</h1>
        <a id="refresh" href="javascript:;"><span class="glyphicon glyphicon-refresh"></span></a>
    </div>
    <nav id="nav">
        <a href="javascript:;" class="active">综合<span class="glyphicon glyphicon-chevron-down"></span></a>
        <a href="javascript:;">销量</a>
        <a href="javascript:;">价格
            <span id="spanBox">
                <span class="glyphicon glyphicon-chevron-up"></span>
                <span class="glyphicon glyphicon-chevron-down active"></span>
            </span>
        </a>
        <a href="javascript:;" >筛选<span class="glyphicon glyphicon-filter"></span></a>
    </nav>
    <section id="wrap">
        <ul id="list">
            <li>
                <a href="javascript:;">
                    <img src="./img/timg.jpg" alt="">
                <span class="spanWrap">
                    <span class="sTitle">苹果(iphone) 16GB 金色 移动联通电信4G手机</span>
                    <span class="sPrice">¥4888.00</span>
                    <span class="sComment">好评96% 59091</span>
                </span>
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="./img/timg.jpg" alt="">
                <span class="spanWrap">
                    <span class="sTitle">苹果(iphone) 16GB 金色 移动联通电信4G手机</span>
                    <span class="sPrice">¥4888.00</span>
                    <span class="sComment">好评96% 59091</span>
                </span>
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="./img/timg.jpg" alt="">
                <span class="spanWrap">
                    <span class="sTitle">苹果(iphone) 16GB 金色 移动联通电信4G手机</span>
                    <span class="sPrice">¥4888.00</span>
                    <span class="sComment">好评96% 59091</span>
                </span>
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="./img/timg.jpg" alt="">
                <span class="spanWrap">
                    <span class="sTitle">苹果(iphone) 16GB 金色 移动联通电信4G手机</span>
                    <span class="sPrice">¥4888.00</span>
                    <span class="sComment">好评96% 59091</span>
                </span>
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="./img/timg.jpg" alt="">
                <span class="spanWrap">
                    <span class="sTitle">苹果(iphone) 16GB 金色 移动联通电信4G手机</span>
                    <span class="sPrice">¥4888.00</span>
                    <span class="sComment">好评96% 59091</span>
                </span>
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="./img/timg.jpg" alt="">
                <span class="spanWrap">
                    <span class="sTitle">苹果(iphone) 16GB 金色 移动联通电信4G手机</span>
                    <span class="sPrice">¥4888.00</span>
                    <span class="sComment">好评96% 59091</span>
                </span>
                </a>
            </li>
            <li>
                <a href="javascript:;">
                    <img src="./img/timg.jpg" alt="">
                <span class="spanWrap">
                    <span class="sTitle">苹果(iphone) 16GB 金色 移动联通电信4G手机</span>
                    <span class="sPrice">¥4888.00</span>
                    <span class="sComment">好评96% 59091</span>
                </span>
                </a>
            </li>
        </ul>
    </section>
</body>
</html>

rem  就是根节点 html, 根据根节点的字体大小进行计算

html{font-size:16px} 1rem = 16px;

js 设置字体大小

$(function(){
    var html = document.documentElement;
    var hWidth = html.getBoundingClientRect().width;
    html.style.fontSize = hWidth/16 + 'px';
})

body内的rem换算是字号大小/hWidth/16

弹性盒模型

新版的flex 和老版的box(移动端暂时不支持新版的flex)

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">

    <title>Document</title>
    <script>
        window.onload = function(){
            var html = document.documentElement;
            var hWidth = html.getBoundingClientRect().width;
            html.style.fontSize = hWidth/15 + 'px';
            //1rem = 50px;
        }
    </script>
    <style>
        /*移动端默认样式*/
        *{
            margin:0;
            padding:0;
        }
        html,body{
            width:100%;    /*滚动条的设置*/
            height:100%;
            overflow: hidden;
        }
        a{
            text-decoration: none;
        }
        a,input,button{
            -webkit-tap-highlight-color: raga(0,0,0,0);
        }
        input,button{
            -webkit-appearance: none;
            border-radius:0;
        }
        body{
            margin : 0;
            -webkit-user-select: none;
        }
        body *{
            -webkit-user-select: none;
            font-family: Helvatica;
        }
        body{
            -webkit-text-size-adjust:100%;
        }
        ul{
            list-style: none;
        }
        img{
            border:0;
            vertical-align: top;
        }
        .rows{
            display: -webkit-box;
            display: flex;
        }
        .rows div{
            -webkit-box-flex: 1;
            flex-grow: 1;
            width:0; /*不会影响flex-grow*/
        }
        .rows div a{
            font-size:0.44rem;
            color:#666;
            text-align: center;
            line-height: 1.04rem;
            display: block;
        }
        .rows div a:before{
            content:'';
            display: block;
            margin:0 auto;
            width:1.9rem;
            height:1.70rem;
            background-image:url('img/1.png');
            background-size: 1.90rem 1.70rem;
        }
        .rows:nth-of-type(1) div:nth-of-type(1) a:before{
            background-image:url('img/1.png');
        }
        .rows:nth-of-type(1) div:nth-of-type(2) a:before{
            background-image:url('img/2.png');
        }
        .rows:nth-of-type(1) div:nth-of-type(3) a:before{
            background-image:url('img/3.png');
        }
        .rows:nth-of-type(1) div:nth-of-type(4) a:before{
            background-image:url('img/4.png');
        }
        .rows:nth-of-type(1) div:nth-of-type(5) a:before{
            background-image:url('img/5.png');
        }
        .rows:nth-of-type(2) div:nth-of-type(1) a:before{
             background-image:url('img/6.png');
         }
        .rows:nth-of-type(2) div:nth-of-type(2) a:before{
            background-image:url('img/7.png');
        }
        .rows:nth-of-type(2) div:nth-of-type(3) a:before{
            background-image:url('img/8.png');
        }
        .rows:nth-of-type(2) div:nth-of-type(4) a:before{
            background-image:url('img/9.png');
        }
        .rows:nth-of-type(2) div:nth-of-type(5) a:before{
            background-image:url('img/10.png');
        }

    </style>
</head>
<body>
    <div class="rows">
        <div><a href="javascript:;">天猫</a></div>
        <div><a href="javascript:;">聚划算</a></div>
        <div><a href="javascript:;">天猫国际</a></div>
        <div><a href="javascript:;">外卖</a></div>
        <div><a href="javascript:;">天猫超市</a></div>
    </div><div class="rows">
        <div><a href="javascript:;">充值中心</a></div>
        <div><a href="javascript:;">飞猪旅行</a></div>
        <div><a href="javascript:;">领金币</a></div>
        <div><a href="javascript:;">拍卖</a></div>
        <div><a href="javascript:;">分类</a></div>
    </div>
</body>
</html>

利用Less和Koala来计算rem

怪异盒模型

box-sizing:border-box(包容了边框)

媒体查询

猜你喜欢

转载自blog.csdn.net/qq_27702739/article/details/81571281