移动端页面开发常见问题
最近由于移动端项目忙不过来,需要人手,我就转而接触移动端网页开发。移动端项网页开发会遇到一些常见问题,这里做一个记录。
1、部分手机不支持flex布局
直接使用display:flex在部分手机上显示有问题。需要写上所有的。
display: -webkit-box; /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */
display: -moz-box; /* 老版本语法: Firefox (buggy) */
display: -ms-flexbox; /* 混合版本语法: IE 10 */
display: -webkit-flex; /* 新版本语法: Chrome 21+ */
display: flex; /* 新版本语法: Opera 12.1, Firefox 22+ */
2、全屏遮罩问题
部分手机出现这个问题,点击时出现一个半透明的遮罩,原以为是兼容性性问题,在网上找到一个普遍的解决方法:
/*
ios用户点击一个链接,会出现一个半透明灰色遮罩, 如果想要禁用,
可设置-webkit-tap-highlight-color的alpha值为0去除灰色半透明遮罩;
android用户点击一个链接,会出现一个边框或者半透明灰色遮罩,
不同生产商定义出来额效果不一样,可设置-webkit-tap-highlight-color
的alpha值为0去除部分机器自带的效果;
winphone系统,点击标签产生的灰色半透明背景,能通过设置
<meta name="msapplication-tap-highlight" content="no">去掉;
特殊说明:有些机型去除不了,如小米2。对于按钮类还有个办法,
不使用a或者input标签,直接用div标签
*/
a,button,input,textarea {
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-user-modify:read-write-plaintext-only;
/*-webkit-user-modify有个副作用,就是输入法不再能够输入多个字符*/
}
/* 也可以 */
* { -webkit-tap-highlight-color: rgba(0,0,0,0); }
/* winphone下 */
<meta name="msapplication-tap-highlight" content="no">
而我使用荣耀6plus进行测试,发现这样改并没有作用。后来发现问题出处:
/*
* Remove text-shadow in selection highlight:
* https://twitter.com/miketaylr/status/12228805301
*
* These selection rule sets have to be separate.
* Customize the background color to match your design.
*/
::selection {
background: #b3d4fc; /*问题就出在这里,使用了::selection 选择器*/
text-shadow: none;
}3、修改默认框样式问题
一、使用appearance改变webkit浏览器的默认外观
input,select { -webkit-appearance:none; appearance: none; }
4、缓存设置
<!-- 清除缓存 -->
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
5、ios上input、textarea等无法输入
*{
-webkit-user-select: none;
-ms-touch-select: none;
-ms-touch-action: none;
}将以上代码注释掉或者删除掉