移动WEB开发常用技巧
Meta设置
<!-- 设备宽度、禁止缩放 --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <!-- 是否删除苹果工具栏和菜单栏(yes/no) --> <meta name="apple-mobile-web-app-capable" content="yes" /> <!-- 苹果顶部导航栏颜色(default/black/black-translucent) --> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <!-- 忽略识别电话号码 --> <meta name="format-detection" content="telephone=no" /> <!-- 忽略识别邮箱 --> <meta name="format-detection" content="email=no" /> <!-- 启用360浏览器的极速模式(webkit) --> <meta name="renderer" content="webkit" /> <!-- 避免IE使用兼容模式 --> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 --> <meta name="HandheldFriendly" content="true" /> <!-- 微软的老式浏览器 --> <meta name="MobileOptimized" content="320" /> <!-- uc强制竖屏 --> <meta name="screen-orientation" content="portrait" /> <!-- QQ强制竖屏 --> <meta name="x5-orientation" content="portrait" /> <!-- UC强制全屏 --> <meta name="full-screen" content="yes" /> <!-- QQ强制全屏 --> <meta name="x5-fullscreen" content="true" /> <!-- UC应用模式 --> <meta name="browsermode" content="application" /> <!-- QQ应用模式 --> <meta name="x5-page-mode" content="app" /> <!-- windows phone 点击无高光 --> <meta name="msapplication-tap-highlight" content="no" />
Link设置
<!-- 启动图标 --> <!-- rel添加 -precomposed 后缀表示不添加IOS高光特效 --> <link rel="apple-touch-icon" href="icon.png"> <link rel="apple-touch-icon-precomposed" href="icon.png">
<!-- iPhone non-retina icon (iOS < 7) --> <link rel="apple-touch-icon" href="icon.png" sizes="57x57">
<!-- iPad non-retina icon (iOS < 7) --> <link rel="apple-touch-icon" href="icon.png" sizes="72x72">
<!-- iPad non-retina icon --> <link rel="apple-touch-icon" href="icon.png" sizes="76x76">
<!-- iPhone retina icon (iOS < 7) --> <link rel="apple-touch-icon" href="icon.png" sizes="114x114">
<!-- iPhone 6 Plus icon --> <link rel="apple-touch-icon" href="icon.png" sizes="120x120">
<!-- iPad retina icon (iOS < 7) --> <link rel="apple-touch-icon" href="icon.png" sizes="144x144">
<!-- iPad retina icon --> <link rel="apple-touch-icon" href="icon.png" sizes="152x152"> <!-- apple-touch-startup-image 启动画面 --> <link rel="apple-touch-startup-image" href="/startup.png">
<!-- iPhone --> <link href="320x460.png" media="(device-width: 320px)" rel="apple-touch-startup-image" />
<!-- iPhone Retina --> <link href="640x920.png" media="(device-width: 320px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
<!-- iPad retina portrait --> <link href="1536x2008.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" rel="apple-touch-startup-image">
<!-- iPad retina landscape --> <link href="1496x2048.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" rel="apple-touch-startup-image">
<!-- iPad portrait --> <link href="768x1004.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 1) and (orientation: portrait)" rel="apple-touch-startup-image">
<!-- iPad landscape --> <link href="748x1024.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 1) and (orientation: landscape)" rel="apple-touch-startup-image">
<!-- iPhone 6 Plus portrait --> <link href="1242x2148.png" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" rel="apple-touch-startup-image">
<!-- iPhone 6 Plus landscape --> <link href="1182x2208.png" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" rel="apple-touch-startup-image">
<!-- iPhone 6 --> <link href="750x1294.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
<!-- iPhone 5 --> <link href="640x1096.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
<!-- iPhone < 5 retina --> <link href="640x920.png" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
<!-- iPhone < 5 --> <link href="320x460.png" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" rel="apple-touch-startup-image">
电话/短信/Email/Android/GPS
<!-- 电话 --> <a href="tel:10086">打电话</a> <a href="wtai://wp/mc;10086">打电话</a> <span onclick="location.href='tel:10086'">打电话</span> <!-- 短信 --> <a href="sms:10086">发短信</a> <a href="sms:10086?body=内容">发短信</a> <a href="sms:10086,10010?body=内容">发短信</a> <!-- Email --> <a href="mailto:a@qq.com">发邮件</a> <a href="mailto:a@qq.com,b@qq.com">发邮件</a> <a href="mailto:a@qq.com?subject=标题">发邮件</a> <a href="mailto:a@qq.com?subject=标题 mailto&cc=b@qq.com">发邮件</a> <!-- 安卓市场--> <a href="market://search?q=MyApp">MyApp</a> <!-- GPS --> <a href="geopoint:经度,纬度">我的位置</a>
样式设置
<!-- 在设置书签的时候可以显示好看的图标 --> <link rel=”apple-touch-icon” href=”iphon_tetris_icon.png”/> <!-- 肖像模式样式 --> <link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css" /> <!-- 风景模式样式 --> <link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css" /> <!-- 竖屏时使用的样式 --> <style media="all and (orientation:portrait)"></style> <!-- 横屏时使用的样式 --> <style media="all and (orientation:landscape)"></style>
app是否从主屏启动
// IOS if( navigator.standalone === true ){}
关闭IOS键盘自动大写
autocapitalize="off"
IOS禁止弹出菜单(长按a标签)/复制图片
/* IOS */ -webkit-touch-callout: none;
IOS禁止用户选中文字
/* IOS */ -webkit-user-select: none;
IOS中获取滚动条距离
window.scrollX、window.scrollY
解决盒子边框溢出
-webkit-box-sizing: border-box;
阻止旋转屏幕时字体大小自动调整
-webkit-text-size-adjust:none;
去除Android里a标签边框
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
设备像素比(设备物理像素/设备独立像素)
if ( window.devicePixelRatio == 1) {}
去除浏览器地址栏
window.onload = function(){ window.setTimeout(scrollTo, 0, 0, 0); };
阻止页面整体滚动
document.body.addEventListener('touchmove', function(ev) { ev.preventDefault(); }, false);
伪类 :active 生效
// touchstart或touchend document.addEventListener('touchstart',function(){},false);
去除IE10里input关闭图标
input:-ms-clear { display:none; }
Date支持placeholder
<input placeholder="Date" type="text" onfocus="(this.type='date')">