- 安卓浏览器看背景图片,有些设备会模糊。 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2。现在android比较乱,有1.5的,有2的也有3的。
想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍)。例如一个div的宽高是100 * 100,背景图必须得200*200,然后background-size:contain;,这样显示出来的图片就比较清晰了。\
-
防止手机中网页放大和缩小。 这点是最基本的,最为手机网站开发者来说应该都知道的,就是设置meta中的viewport
设置了DTD的方式是XHTML的写法,假如我们页面运用的是html5,可以不用设置DTD,直接声明。 使用viewport使页面禁止缩放。 通常把user-scalable设置为0来关闭用户对页面视图缩放的行为。 但是为了更好的兼容,我们会使用完整的viewport设置。 代码如下:
当然,user-scalable=0,有的人也写成user-scalable=no,都可以的。 -
ios和android下触摸元素时出现半透明灰色遮罩
Element {
-webkit-tap-highlight-color:rgba(255,255,255,0)
}
设置alpha值为0就可以去除半透明灰色遮罩,备注:transparent的属性值在android下无效。
- ctive兼容处理 即 伪类 :active 失效
方法一:body添加ontouchstart
方法二:js给 document 绑定 touchstart 或 touchend 事件
a {
color:#000;
}
a:active {
color:#fff;
}
[bar]()
document.addEventListener('touchstart',function(){},false);
- 手机上的多行省略
.overflow-hidden{
display: box !important;
display: -webkit-box !important;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;/*第几行出现省略号*/
/*text-align:justify;不能和溢出隐藏的代码一起写,会有bug*/
}
-
某些安卓手机的自带浏览器不识别onkeydown onkeypress onkeyup事件,这些事件会导致不能输入汉字
-
IOS手机中如果出现一个元素的层级非常高可还是被别的元素遮盖的,那么就将该元素与别的元素同级苹果手机固定定位有bug 检查html和body是不是设置了overflow-x:hidden;
-
button /button元素一定要写上type属性不然会默认提交表单,出现想不到的bug
-
html5调用安卓或者ios的拨号功能
html5提供了自动调用拨号的标签,只要在a标签的href中添加tel:就可以了。如下:400-810-6999 转 1034拨打手机直接如下:点击拨打15677776767
-
上下拉动滚动条时卡顿、慢
body {-webkit-overflow-scrolling:
touch;overflow-scrolling: touch;}
Android3+和iOS5+支持CSS3的新属性为overflow-scrolling
- 禁止复制、选中文本
Element {-webkit-user-select:none;
-moz-user-select:none;
-khtml-user-select:none;
user-select:none;
}
解决移动设备可选中页面文本(视产品需要而定)
- iphone及ipad下输入框默认内阴影
Element{
-webkit-appearance:none;
}