手机触屏版页面开发总结
设置viewpoint和屏幕等宽
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
主流分辨率
Android:主流机型主要为 480x800, 480x854, 540x960, 720x1280, 800x1280 这五种。
(非主流机型还包括:240x320, 320x480, 640x960 这三种,其中两种都与 iPhone 一致。)
iOS: 主流机型主要为 320x480, 640x960, 640x1136, 1024x768, 2048x1536, 这五种。
WP:主流机型主要为 480x800,720x1280, 768x1280 这三种
新增:iPhone6:750*1334 iPHone6s 1242*2208
使用相对单位
1、宽、高、填充、边界均使用百分比
2、字体em/rem
em:相对父级
rem(root element):相对根父级
ps:字体单位一览表(各大浏览器默认字体16px)
Pixels
|
EMs
|
Percent
|
Points
|
6px
|
0.375em
|
37.5%
|
5pt
|
7px
|
0.438em
|
43.8%
|
5pt
|
8px
|
0.5em
|
50%
|
6pt
|
9px
|
0.563em
|
56.3%
|
7pt
|
10px
|
0.625em
|
62.5%
|
8pt
|
11px
|
0.688em
|
68.8%
|
8pt
|
12px
|
0.75
|
75%
|
9pt
|
13px
|
0.813
|
81.3%
|
10pt
|
14px
|
0.875
|
87.5%
|
11pt
|
15px
|
0.938
|
93.8%
|
11pt
|
16px
|
1em
|
100%
|
12pt
|
17px
|
1.063em
|
106.3%
|
13pt
|
18px
|
1.125em
|
112.5%
|
14pt
|
19px
|
1.188em
|
118.8%
|
14pt
|
20px
|
1.25em
|
125%
|
15pt
|
21px
|
1.313em
|
131.3%
|
16pt
|
22px
|
1.375em
|
137.5%
|
17pt
|
23px
|
1.438em
|
143.8%
|
17pt
|
24px
|
1.5em
|
150%
|
18pt
|
合理使用box-flex,让布局更简单
兼容性写法:
.flex-box{ overflow: hidden; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; width: 100%; height: 300px; margin: 0 auto; color: #fff; text-align: center; font-family: ‘Microsoft YaHei‘; } .flex1{ width: 20%; height: 100%; background: #ff8989; display: block; } .flex2{ -webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */ -moz-box-flex: 1; /* OLD - Firefox 19- */ -webkit-flex: 1; /* Chrome */ -ms-flex: 1; /* IE 10 */ flex: 1; background: #1bbc9b; } .flex3{ width: auto; width: 20%; height: 100%; background: #516d81; }
demo:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> .flex-box{ overflow: hidden; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; width: 100%; height: 300px; margin: 0 auto; color: #fff; text-align: center; font-family: ‘Microsoft YaHei‘; } .flex1{ width: 20%; height: 100%; background: #ff8989; display: block; } .flex2{ -webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */ -moz-box-flex: 1; /* OLD - Firefox 19- */ -webkit-flex: 1; /* Chrome */ -ms-flex: 1; /* IE 10 */ flex: 1; background: #1bbc9b; } .flex3{ width: auto; width: 20%; height: 100%; background: #516d81; } </style> <body> <p>你可以改变屏幕宽度查看效果</p> <div class="flex-box"> <div class="flex1">flex1 <br> 我的宽度为父级的20%;</div> <div class="flex2">flex2 <br> 我的宽度为父级宽-(flex1+flex3);</div> <div class="flex3">flex3 <br> 我的宽度为父级的20%;</div> </div> </body> </html>
使用box-sizing,可以减少很多不必要的计算
兼容性写法:
.sizing{ -moz-box-sizing: border-box; -o-box-sizing: border-box; box-sizing: border-box; }
使用 CSS 媒体查询
@media screen and (min-width: 640px){ 样式 }
其他实用小技巧:
去掉手持设备点击时出现的透明层:
a,button,input{ -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highlight-color: transparent; }
去掉input在ios下的默认效果:
input{ resize: none; -webkit-appearance:none; }
阻止旋转屏幕时自动调整字体大小
html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 { -webkit-text-size-adjust:100%; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。