移动Web开发小结

在做移动Web开发时有很多地方跟PC端是不一样的,需要不一样的设置,这里就记录下移动Web开发中有用的设置和一些通用代码。

HTML

设置页面宽度等于设备宽度,并禁止用户缩放页面

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

忽略页面中的数字识别为电话,忽略email识别

1
<meta name="format-detection" content="telphone=no, email=no" />

开启对web app程序的支持(仅针对IOS系统)

网站开启对web app程序的支持,其实意思就是删除默认的苹果工具栏和菜单栏,开启全屏显示

1
<meta name="apple-mobile-web-app-capable" content="yes" />

改变顶部状态条的颜色(仅针对IOS系统)

在 web app 下状态条(屏幕顶部条)的颜色默认值为 default(白色),可以定为 black(黑色)和 black-translucent(灰色半透明);

1
<meta name="apple-mobile-web-app-status-bar-style" content="black" />

完整的HTML模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<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="telphone=no, email=no" />
<title>标题</title>
</head>
<body>
这里开始内容
</body>
</html>

CSS

css reset

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
html{
-webkit-tap-highlight-color: rgba(0,0,0,0); /*去掉触摸遮盖层*/
-webkit-user-modify: read-write-plaintext-only;
-webkit-user-select: none; /*禁止用户选择文字*/
}
/*设置所有盒子大小计算边框内*/
*,
*:before,
*:after {
box-sizing: border-box;
}
/*消除输入框的阴影和边框*/
input,textarea, select{
-webkit-appearance: none; /*去掉webkit默认的表单样式*/
appearance: none;
outline: none;
border: none;
}

消除transition动画闪屏

1
2
3
4
.animate {
-webkit-transform-style: preserve-3d; /*设置内嵌的元素在 3D 空间如何呈现:保留 3D*/
-webkit-backface-visibility: hidden; /*设置进行转换的元素的背面在面对用户时是否可见:隐藏*/
}

开启硬件加速

解决页面闪白,保证动画流畅。

1
2
3
4
5
6
.css {
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}

其他

关于打电话、发短信、发邮件的实现

1
2
3
<a href="tel:10086">打电话给:10086</a>
<a href="sms:10086">发短信给:10086</a>
<a href="mailto:zhangxy_92@outlook.com">发邮件给:zhangxy_92@outlook.com</a>

关于布局

移动端中对于flexbox的支持已经很好,flexbox是布局神器。阮一峰老师写过flexbox 入门教程;以后自己可能也会写一篇flexbox的学习和总结笔记。