1、安卓浏览器看背景图片,有些设备会模糊

因为手机分辨率太小,如果按照分辨率来显示网页,字会非常小,安卓手机devicePixoRadio比较乱,有1.5的,有2的也有3的。想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况下都是2倍的),或者指定background-size:contain;都可以

用-webkit-min-device-pixel-ratio可以做到不同倍数不同尺寸的图片:

.icon-logo

{

background-image: url(src/assets/logo.png);

width: 24px;

height: 24px;

background-size: contain;

}

@media screen and (-webkit-min-device-pixel-ratio: 2)

{

.icon-logo { background-image: url(src/assets/logo@2.png); }

}

@media screen and (-webkit-min-device-pixel-ratio: 3)

{

.icon-logo { background-image: url(src/assets/logo@3.png); }

}

@media screen and (-webkit-min-device-pixel-ratio: 4)

{

.icon-logo { background-image: url(src/assets/logo@4.png); }

}

2、防止手机中页面放大和缩小

3、上下拉动滚动条时卡顿、慢

body

{

-webkit-overflow-scrolling:touch;

overflow-scrolling:touch;

}

Android3+和iOSi5+支持CSS3的新属性为overflow-scrolling

4、长时间按住页面出现闪退

element

{

-webkit-touch-callout:none;

}

5、iphone及ipad下输入框默认内阴影

element

{

-webkit-appearance:none;

}

6、ios和android下触摸元素时出现半透明灰色遮罩

element

{

-webkit-tap-highlight-color:rgba(255,255,255,0);

}

设置alpha值为0就可以去除本透明灰色遮罩,备注:transparent的属性值在android下无效。

7、active兼容处理 即 伪类:active失效

方法一:body添加ontouchstart

方法二:js给document绑定touchstart或touchend事件

a

{

color:#000;

}

a:active

{

color:#fff;

}

bar

document.addEventListentener('touchstart',function(){},false);

8、1px边框

在移动端中,如果给元素设置一个像素的边框的话,那么在手机上看起来是会比一个像素粗的。

解决方法:使用伪类元素模拟边框,使用transform缩放

.button

{

height: 36px;

line-height: 36px;

font-size: 14px;

padding: 0px;

margin: 0px;

padding-left: 16px;

padding-right: 16px;

background-color: white;

border: none;

outline: none;

box-sizing: border-box;

border-radius: 5px;

position: relative;

-webkit-user-select: none;

-ms-user-select: none;

-moz-user-select: none;

text-decoration: none;

display: block;

}

.button:after

{

content: '';

z-index: 1;

position: absolute;

border: 1px solid rgba(0,0,0,0.23);

pointer-events: none;

box-sizing: border-box;

transform-origin: 0 0;

transform: scale(calc(1/1));

top: 0px;

left: 0px;

width: calc(100% * 1);

height: calc(100% * 1);

border-radius: calc(5px * 1);

transition: all ease-in-out 150ms;

background-color: rgba(0,0,0,0);

}

.button:active:after

{

background-color: rgba(0,0,0,0.1);

}

.button.button-blue

{

background-color: #3F51B5;

color: white;

}

.button.button-blue:active:after

{

background-color: rgba(0,0,0,0.15);

}

@media screen and (-webkit-min-device-pixel-ratio: 2)

{

.button:after

{

border-radius: calc(5px * 2);

width: calc(100% * 2);

height: calc(100% * 2);

transform: scale(calc(1/2));

}

}

@media screen and (-webkit-min-device-pixel-ratio: 3)

{

.button:after

{

border-radius: calc(5px * 3);

width: calc(100% * 3);

height: calc(100% * 3);

transform: scale(calc(1/3));

}

}

@media screen and (-webkit-min-device-pixel-ratio: 4)

{

.button:after

{

border-radius: calc(5px * 4);

width: calc(100% * 4);

height: calc(100% * 4);

transform: scale(calc(1/4));

}

}

9、webkit mask兼容处理

某些低端手机不支持css3mask,可以选择性的进降级处理

比如可以使用js判断来引用不同class:

if('WebkitMask' in documnet.documentElement.style)

{

alert('支持 mask')

}

else

{

alert('不支持 mask')

}

10、pc端与移动端字体大小的问题

html,body,form,fieldset,p,div,h1,h2,h3,h4,h5,h6

{

-webkit-text-size-adjust:100%;

}

pc端字体正常显示,但ios真机就出现,h1、span等标签字体比较大。

html

{

-webkit-text-size-adjust:100%;/*ios端谷歌浏览器测试有效,Android端未测试*/

}

11.transiton闪屏

/*设置内联的元素在3D空间如何呈现:保留3D*/

-webkit-transform-style:preserve-3D;

/*设置进行转换的元素的背面在面对用户时是否课件:隐藏*/

-webkit-backface-visibility:hidden;

12.圆角bug

某些Android手机圆角失效 background-clip:padding-box;

13.click的300ms延迟问题

在移动端中,click事件是生效的,但是,点击之后会有300ms的延迟响应

原因:safari是最早做出这个机制的,因为在移动端里,浏览器需要等待一段时间来判断此次用户操作是单击还是双击,所以就有click300ms的延迟机制,Android也很快就有了

不用click,用自定义事件tap

tap是需要自定义的:如果用户执行了touchstart在很短的时间又触发了touchend,且两次的距离很小,而且不能

引入fastclick库来解决

14.响应式图片

在移动端中,图片的处理应该是很谨慎的,假设有一张图片本身的尺寸是X宽,设置和包裹它的div一样宽,如果是div宽度小于图片宽度没有问题,但是如果div宽度大于图片的宽度,图片被拉伸失真

解决方法:让图片最大只能是自己的宽度

img{

max-width: 100%;

display: block;

margin: 0 auto;

}

15.点透bug的产生

例如:

点头事件测试

www.jb51.net

div是绝对定位的蒙层,并且z-index高于a。而a标签是页面中的一个链接,我们给div绑定tap事件:

$('#haorooms').on('tap',function(){

$('#haorooms').hide();

})

我们点击蒙层时div正常消失,但是当我们在a标签上点击蒙层时,发现a链接被触发,这就是所谓的点透事件。

原因:

touchstart早于touchend早于click。即click的触发是由延迟的,这个时间大概在300ms左右,也就是说我们tap触发之后蒙层隐藏。此时click还没有触发,300ms之后由于蒙层隐藏,我们的click触发到了下面的a链接。

解决:

1.尽量都使用touch事件来替换click事件。例如用touchend事件(推荐)

2.用fastclick

3.用preventDefault阻止a标签的click

内容大部分都没测试过,使用前请先测试

android和ios兼容面试题,[转]移动端常见面试题一:移动端兼容解决方案相关推荐

  1. android半透明闪退,移动端常见面试题一:移动端兼容解决方案

    原标题:移动端常见面试题一:移动端兼容解决方案 移动端 经常出现的兼容问题 1.安卓浏览器看背景图片,有些设备会模糊 因为手机分辨率太小,如果按照分辨率来显示网页,字会非常小,安卓手机devicePi ...

  2. 【面试题】Redis篇-常见面试题p1

    [面试题]Redis篇-常见面试题p1 备战实习,会定期的总结常考的面试题,大家一起加油!

  3. 2018常见的java面试题_2018新版Java常见面试题

    千锋西安Java编程培训班的老师总结了2018新版Java常见面试题,一起来看! 1.1.java基础 ●面向对象的特征:继承.封装.多态 继承[构造器.protected关键字.向上转型Java实现 ...

  4. mysql常见面试题及答案_MySQL常见面试题与答案整理

    1.MySQL 中有哪几种锁? 1.表级锁: 开销小, 加锁快: 不会出现死锁: 锁定粒度大, 发生锁冲突的概率最高, 并发度最低. 2.行级锁: 开销大, 加锁慢: 会出现死锁: 锁定粒度最小, 发 ...

  5. Android开发必须掌握的Java基础知识和常见面试题

    Java基础知识 面向对象特征 基本数据类型及装箱拆箱机制 String StringBuffer StringBuild final finally finalize 区别 static关键字 重写 ...

  6. Flutter——在Android平台上的启动流程浅析,2021Android常见面试题

    Android端的启动流程 ============= 启动流程实际上还涉及了很多native 层的工作,但是宥于篇幅,暂且只看Android端. FlutterApplication flutter ...

  7. 最新Java面试题2021年,常见面试题及答案汇总

    2021最新Java面试题[附答案解析]java面试题及答案2021,java2021最新面试题及答案汇总,2021最Java面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集 ...

  8. SpringMVC常见面试题(5个最常见面试题,回答超详细)

    以下题目顺序根据面试中问的概率排序的,尽量都背下来啊. 目录 面试题一:什么是Spring MVC ?简单介绍下你对springMVC的理解? 面试题二:SpringMVC的工作流程? 面试题三:Sp ...

  9. 小博老师收集Java经典面试题 ——Servlet和JSP常见面试题

    [面试题] 1.简单说说tomcat的配置? JAVA_HOME=JDK的根目录 CATALINA_HOME=tomcat的根目录 CATALINA-HOME\conf\server.xml:可以配置 ...

最新文章

  1. 整图下沉,MindSpore图引擎详解
  2. 缓存区溢出检测工具BED
  3. 题解 【NOIP2016】组合数问题
  4. mac 下 ssh被拒绝
  5. 如何选举根端口,指定端口,阻塞端口
  6. MSRA,我的实习初体验(上)
  7. 基于SSM的培训机构管理系统
  8. 删除留言代码html代码,使用JavaScript代码批量自动删除QQ留言板内容
  9. 书评:学会提问——批判性思维指南
  10. diskgenius扩容c盘重启电脑卡住_无损扩容分区
  11. 二维傅里叶变换的意义
  12. 分享我用H5打造微信公众号吸粉引流的恶搞方法
  13. F5负载均衡设备入门
  14. Java for函数用法_Java函数式编程(四)集合的使用
  15. Excel学习之旅(三)
  16. ssh远程出错Add correct host key in /home/xxx/.ssh/known_hosts to get rid of this message
  17. 【转】情牵牛仔裤 情色一生
  18. 情报板/路政/枪机/卡口/监控类摄像机
  19. 杰理之蓝牙认证【篇】
  20. 机器视觉(相机、镜头、光源)详细解析

热门文章

  1. 机器人编程语言python-进行人工智能机器人研发,应该选择哪种编程语言?
  2. python资料百度网盘-python自动保存百度盘资源到百度盘中的实例代码
  3. python映射类型-详解Python中映射类型(字典)操作符的概念和使用
  4. python映射类型-Python中字典映射类型的学习教程
  5. python实现文件下载-Python实现http文件下载
  6. python代码大全p-python处理写入数据代码讲解
  7. python编程 从入门到实践豆瓣-三周刷完《Python编程从入门到实践》的感受
  8. python 命令行参数-Python3 命令行参数
  9. python自学路线-Python最佳学习路线
  10. tcpdump一些选项的使用