移动端开发注意事项

一、关于meta

(一)、常用的公共meta属性

1、viewport

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
属性 备注
width=device-width 宽度=设备屏幕的宽度(px)
minimum-scale 允许用户缩放到的最小比例
maximum-scale 允许用户缩放到的最大比例
user-scalable 用户是否可以手动缩放

2、Format-detection(格式检测)

默认情况下,设备会自动识别任何可能是电话号码的字符串。设置telephone=no可以禁用这项功能。

<meta name="format-detection" content="telephone=no,email=no,adress=no"/>

如果禁用,html5提供了自动调用拨号的标签,只要在a标签的href中添加tel:就可以了。
固话:

<a href="tel:01012345678,110">010-12345678 转110</a>

手机:

<a href="tel:13011111111">13011111111</a>

3、设置缓存

<meta http-equiv="Cache-Control" content="no-cache" />

手机页面通常在第一次加载后会进行缓存,然后每次刷新会使用缓存而不是去重新向服务器发送请求。
如果不希望使用缓存可以设置no-cache。

(二)、iOS私有meta属性

1、是否全屏显示

<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-touch-fullscreen" content="yes"/>

网站开启对web app程序的支持。
若content设置为yes,Web应用会以全屏模式运行,反之不会。
content默认值为no,表示正常显示。
可以通过制度属性window.navigator.standalone来确定是否以全屏模式显示。
为了更好的兼容性,以上两个meta可以都写上!

2、web app应用下状态条(屏幕顶部条)颜色

<meta name="apple-mobile-web-app-status-bar-style" content="black"/>

除非先使用apple-mobile-web-app-capable指定全屏模式,否则这个meta标签不会起任何作用。
默认值为default(白色),可以定位black(黑色)和black-translucent(灰色半透明)。
若值为"black-translucent"将会占据页面px位置,浮在页面上方(会覆盖页面20px高度-iPhone4和iTouch4的Retina屏幕为40px)。

3、添加至主屏幕设置

Safari浏览器中点击添加至主屏幕按钮,会默认生成一个截图的图标,相当于浏览器创建了一个快捷方式。
添加至主屏幕后,桌面图片和启动画面的设置
桌面图标设置:

<!--立体有光感-->
<link rel="apple-touch-icon" type="text/css" href="touch-icon-iphone.png"/>

<!--设计原图显示-->
<link rel="apple-touch-icon-precomposed" type="text/css" href="touch-icon-iphone.png"/>

图片尺寸可以设定为5757(px)或者Retina可以定为114114(px),ipad尺寸为72*72(px)。

启动画面设置:

<link rel="apple-touch-startup-image" type="text/css" href="wendd_startup.png"/>

iOS下页面启动加载时显示的画面图片,避免加载时的白屏。

可以通过madia来指定不同的大小:

<!--iPhone-->
<link href="apple-touch-startup-image-320x460.png" media="(device-width: 320px)" rel="apple-touch-startup-image" />

<!-- iPhone Retina -->
<link href="apple-touch-startup-image-640x920.png" media="(device-width: 320px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />

<!-- iPhone 5 -->
<link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="apple-touch-startup-image-640x1096.png">

<!-- iPad portrait -->
<link href="apple-touch-startup-image-768x1004.png" media="(device-width: 768px) and (orientation: portrait)" rel="apple-touch-startup-image" />

<!-- iPad landscape -->
<link href="apple-touch-startup-image-748x1024.png" media="(device-width: 768px) and (orientation: landscape)" rel="apple-touch-startup-image" />

<!-- iPad Retina portrait -->
<link href="apple-touch-startup-image-1536x2008.png" media="(device-width: 1536px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />

<!-- iPad Retina landscape -->
<link href="apple-touch-startup-image-1496x2048.png"media="(device-width: 1536px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)"rel="apple-touch-startup-image" />

二、关于样式

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

body{
    overflow-scrolling: touch;
    -webkit-overflow-scrolling: touch;
}

2、禁止复制、选中文本

Element{
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

注:解决移动设备可选中页面文本(视产品需求而定)

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

Element{
    -webkit-touch-callout: none;
}

4、iPhone和iPad下输入框默认内阴影

Element{
    -webkit-appearance: none;
}

5、iPhone和Android下触摸元素时出现半透明灰色遮罩

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

设置alpha值为0,可以去除班都没灰色遮罩
注:transparent的属性值在Android下无效。

6、active兼容处理(伪类 :active 失效)

<body ontouchstart="">

或给 document 绑定 touchstart 或 touchend 事件

<style>
a {
  color: #000;
}
a:active {
  color: #fff;
}
</style>
<a herf=foo >bar</a>
<script>
  document.addEventListener('touchstart',function(){},false);
</script>

7、动画定义3D启用硬件加速

Element{
    transform: translate3d(0,0,0);
    -webkit-transform: translate3d(0,0,0);
}

8、Retina屏的1px边框

Element{
    border-width: thin;
}

9、旋转屏幕时,字体大小调整的问题

html,body,form,fieldset,p,div,h1,h2,h3,h4,h5,h6{
    -webkit-text-size-adjust: 100%;
}

10、transition闪屏

设置内嵌的元素在3D空间,保留3D

Element{
    -webkit-transform-style: preserve-3d;
}

设置进行转换的元素的背面在面对用户是是否可见:隐藏

Element{
    -webkit-backface-visibility:hidden;
}

11、圆角bug

某些Android手机圆角失效

Element{
    background-clip:padding-box;
}

总结陆续更新···

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容