移动web开发常用技巧

2016-03-02    编辑:kupeer     点击(
下面我整理一些在学习移动web开发时一些常用的笔记了,如果你正在学习移动开发或做开发这些常识对各位朋友会很有帮助哦。

*Meta标签

 代码如下 复制代码

//强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览;
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
//iphone设备中的safari私有meta标签,允许全屏模式浏览;
<meta content="yes" name="apple-mobile-web-app-capable" />
//iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;
<meta content="black" name="apple-mobile-web-app-status-bar-style" />
//告诉设备忽略将页面中的数字识别为电话号码;
<meta content="telephone=no" name="format-detection" />

*关闭识别后添加链接

关闭识别后添加链接

 代码如下 复制代码
<a href="tel:12345654321">打电话给我</a>
<a href="sms:12345654321">发短信</a>
<span onclick="location.href='tel:122'"></span>

*使用HTML5标签

使用html5标签增强语义,提升体验

*放弃float属性

遇到内容排列排列显示的布局放弃float,使用display、webkit-box自适应布局

*利用CSS3边框背景属性

 代码如下 复制代码

使用-webkit-border-image代替复杂的(圆角+内发光+高光)

*块级化a标签

将每条数据都放在一个a标签中提升用户体验,尽可能的保证用户的可点击区域较大。

*去除Android邮箱地址的识别

 代码如下 复制代码

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

*去除iOS和Android中的输入URL的控件条

 代码如下 复制代码

setTimeout(scrollTo,0,0,0) 需要放在window.onload里,当前文档的内容高度必须是高于窗口的高度。

*用户旋转设备

禁止开发者阻止浏览器的orientationchange事件

*用户是通过主屏启动你的webapp

IOS 从主屏启动时navigator.standalone为true,从站点为false
Android 无

*关闭iOS中键盘自动大写

 代码如下 复制代码

autocapitalize="off"

*iOS中如何彻底禁止用户在新窗口打开页面

 代码如下 复制代码
IOS -webkit-touch-callout:none;

Android 无效。

*iOS中禁止用户保存图片/复制图片

 代码如下 复制代码

-webkit-touch-callout:none

*iOS中如何禁止用户选中文字

 代码如下 复制代码

-webkit-user-select:none

*iOS中如何获取滚动条的值

 代码如下 复制代码

window.scrollY和window.scrollX

*解决盒子边框溢出

宽度100%时边框溢出,-webkit-box-sizing:border-box;

*Android 2.0以下圆角问题

必须加-webkit-

*android页面自适应

 代码如下 复制代码

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0;" />

*如何解决iOS 4.3版本中safari对页面中5位数字的自动识别和自动添加样式

<meta name="format-detection" content="telphone=no" />

*样式设置

 代码如下 复制代码

<link rel=”apple-touch-startup-image” href=”startup.png” /> // 设置开始页面图片
<link rel=”apple-touch-icon” href=”iphon_tetris_icon.png”/> // 在设置书签的时候可以显示好看的图标
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css" />  www.111cn.net  // 肖像模式样式
<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> //横屏时使用的样式

*事件

 代码如下 复制代码

/ 手势事件
touchstart            //当手指接触屏幕时触发
touchmove           //当已经接触屏幕的手指开始移动后触发
touchend             //当手指离开屏幕时触发
touchcancel

// 触摸事件
gesturestart          //当两个手指接触屏幕时触发
gesturechange      //当两个手指接触屏幕后开始移动时触发
gestureend

// 屏幕旋转事件
onorientationchange

// 检测触摸屏幕的手指何时改变方向
orientationchange www.111cn.net

// touch事件支持的相关属性
touches
targetTouches
changedTouches
clientX    // X coordinate of touch relative to the viewport (excludes scroll offset)
clientY    // Y coordinate of touch relative to the viewport (excludes scroll offset)
screenX    // Relative to the screen
screenY     // Relative to the screen
pageX     // Relative to the full page (includes scrolling)
pageY     // Relative to the full page (includes scrolling)
target     // Node the touch event originated from
identifier     // An identifying number, unique to each touch event

//屏幕旋转事件:onorientationchange
window.orientation  //0 肖像模式,-90 左旋,90 右旋,180 风景模式

*自动大写与自动修正

 代码如下 复制代码

<input type="text" autocapitalize="off" autocorrect="off" />

*阻止旋转屏幕时自动调整字体大小

 代码如下 复制代码

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

*缩小图片

 代码如下 复制代码

@media screen and (max-device-width: 480px){
  img{max-width:100%;height:auto;}
}