这里大部分是本身遇到过的状况,还有一部分借鉴了同行的文章,若是你们有遇到其它坑,欢迎提出来一块儿研究。css
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
<meta content="telephone=no" name="format-detection" />
<meta content="email=no" name="format-detection" />
<meta name="apple-mobile-web-app-capable" content="yes" /><!-- 据说在ios7以上版本就没效果了 --> <meta name="apple-mobile-web-app-status-bar-style" content="black" /><!-- 可选default、black、black-translucent 可是我都是用black-->
// Javascript: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth 网页正文全文高: document.body.scrollHeight 网页被卷去的高: document.body.scrollTop 网页被卷去的左: document.body.scrollLeft 网页正文部分上: window.screenTop 网页正文部分左: window.screenLeft 屏幕分辨率的高: window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工做区高度: window.screen.availHeight 屏幕可用工做区宽度: window.screen.availWidth // Jquery: $(document).ready(function(){ alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(document).height()); //浏览器当前窗口文档的高度 alert($(document.body).height());//浏览器当前窗口文档body的高度 alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin alert($(window).width()); //浏览器当前窗口可视区域宽度 alert($(document).width());//浏览器当前窗口文档对象宽度 alert($(document.body).width());//浏览器当前窗口文档body的宽度 alert($(document.body).outerWidth(true));//浏览器当前窗口文档body的总宽度 包括border padding margin })
<a href="tel:020-88888888">打电话给:020-88888888</a> <a href="sms:911">发短信给: 911</a>
4.img和backgroundhtml
so,网页会先加载标签img的内容,再加载背景图片background引用的图片
移动设备上的页面,当屏幕旋转的时候会有一个orientationchange事件,能够给body元素增长此事件的监听:前端
<body onOrientationchange="updateOrientation();">
进入监听方法中,经过window。orientation来获取当前屏幕的状态:html5
解决方法:jquery
<!-- uc强制竖屏 --> <meta name="screen-orientation" content="portrait"> <!-- QQ强制竖屏 --> <meta name="x5-orientation" content="portrait">
使用事件监听或事件绑定时,因为父元素选择body或document元素,致使在ios中事件触发无效,因此不使用body和document元素做为父级元素。android
Date的日期格式,在ios中有兼容性问题,ios的日期会显示成:NaN;ios
解决方法:在ios中支持"2017/12/26 19:36:00",而不支持"2017-12-26 19:36:00"格式,后面一种格式,在ios中显示Nan (Android中均可以显示正常)web
因为不一样的手机有不一样的像素密度,css中的1px并不等于移动设备的1px。项目中使用js和rem作移动端的屏幕适配,因此产生0.5px的状况,致使低版本的手机展现不了0.5px的边框。浏览器
解决方法:使用css解决1px的问题,而且给须要设置成1px的dom元素直接写上:border-width:1px;微信
web页面在PC浏览器上浏览时有滚动条;可是,在移动端浏览器打开时,没有滚动条
解决方法:将页面的最外层(我通常在写页面时,会在body标签内写一个大容器,用于存放页面的内容)设置overflow:auto/scroll;而且不能设置height属性的值(height:100%也不行)
列表页的列表项时(触摸到文字),在低版本手机中会出现闪退的状况
解决方法:
js部分:在事件触发时添加e.preventDefault();,用于阻止默认行为
css部分:添加禁止文本文本复制的代码 -webkit-touch-callout: none; user-select: none;
解决方案:在要滚动元素上加上
-webkit-overflow-scrolling: touch; overflow-scrolling: touch;
input,button,textarea{-webkit-appearance: none;}
input:disabled, input[disabled]{ -webkit-opacity:1; opacity: 1; }
css中position: fixed定位会由于其父元素上可能设置了transform属性而失效。
解决方法:使用url地址后加随机数来解决
这个问题我有遇到过,而后网上了找了解决方法,可是没有效果,因此只能改用开始移动播放音乐。