移动端的长度单位

  在pc端大多少用px单位,px用到移动端就回发现适配各种终端是非常困难的事情,所以我非常少使用px。

  1.刚开始为了解决适配问题,几乎都是用到%。

.footer-area {
   background:#f4f4f6;
   width: 100%;                   //和body的宽度一致
   position:absolute;
   bottom:0;
   box-sizing:border-box;        //元素高度和宽度包括边框和内边距
   -webkit-box-sizing:border-box;
}
.input-area {
    width: 97%;                       //作为.footer-area的子元素,它的宽度为它的0.97
    height: 36px;
    border: 1px solid #abadb2;
    padding-left: 0.3em;
    padding-right: 0.3em;
    border-radius: 5px;
    vertical-align: top;
    font-size: 16px;
    -webkit-box:border-box;
    -webkit-appearance: none;        //webkit的一个外观样式,-webkit有个默认值会影响外观,所以必须设置为none,清除掉默认的外观。
    -webkit-box-sizing: border-box;
}
<footer class="footer-area" id="footer-area">
      <div class="input-area">
            <img class="footer-shurui" style="position: absolute;left: 0em;" src="/assets/img/kysr/video.png">
      </div>
</footer>

%可以比较好的去解决适配问题,但是有一些宽度太小,实在是不能用%去表示,那么我就利用了下px来衡量,一般都是在5px一下的宽度或者宽度不影响适配的情况下可以使用。

2.另外我还用到了em单位,不过发现感觉也没用什么卵用,但是em的是怎么计算大小的还是需要了解下。

譬如:移动端的默认字体是16px(最小字体为12px),你在body中定义:

 1 <style type="text/css">
 2     body {
 3         font-size: 2em;
 4     }
 5     .text {
 6         font-size: 0.5em;
 7     }
 8     </style>
 9     </head>
10     <body>
11         <div>
12             font-size:12px*2 = 24px;
13         </div>
14         <div class="text"> font-size:12px*2 *0.5 = 12px;   
15         </div>
16     </body>

  3.有人说移动端全部用rem单位。

   rem是根据标签html设置文字大小后,其他标签设置的rem都是html大小的倍数。计算方式和em差不多,但是参照物却只有html设置文字。 以后多使用。

 4.还利用到vw,vh这两个我感觉比较爽得单位。

    vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。
  vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。
    vmin:vw和vh中较小的那个。
    vmax:vw和vh中较大的那个。

 “视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,这个对应手机适配作用很大,而且目前主流浏览器都是支持的。

 我一般在图片定位高度和宽度的利用它,它是把图片做出响应式正方形的必杀技。

1 .tooth-introduce {
2     background-color: #ffffff;
3     height: 35.2vw;
width: 35.2vw; 4 padding-top:4.13vw; 5 padding-left: 6.8vw; 6 }

vw和wh原理和%类似,如同 em和rem的关系。vw永远相对应视口,而%应对与元素的父节点,做一个能适配大多少设备的H5,用%是一个不错的选择。尤其是在宽度的处理上。

最近发现部分安卓手机不支持对图像进行VW和VH来大小定位,可以用div标签把img包含起来,对div进行定位。

5.有些地方确实不好处理,那有可能用到媒体查询,如:

@media screen and (max-width:359px){
     .patient-sex {
	 padding-left: 12%;  //设备的屏幕0-359px时呈现的样式。
      }
}
@media screen and (min-width: 360px) and (max-width: 700px){ .patient-sex { padding-left: 15%; //设备的屏幕360-700px时呈现的样式。
} }

解决适配的三种方法,框架优先考虑%,细节方面用rem、px ,微调考虑媒体查询。

要适应多个屏幕,可以参考博客:http://blog.csdn.net/nczb007/article/details/60140542

 

 

 

 

posted @ 2015-10-27 14:48  anthonyliu  阅读(2698)  评论(0编辑  收藏  举报