html5移动web开发小记

一、配置移动开发环境 
1.各种仿真器、模拟器的下载安装 
http://www.mobilexweb.com/emulators 
https://github.com/h5bp/mobile-boilerplate/wiki/Mobile-Emulators-&-Simulators 

2.html5 DTD 
<!doctype html> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width,initial-scale=1.0"> 
safari: 设为屏幕宽度,并根据initial-scale=1.0禁止浏览器缩放 

3.帮助html5跨浏览器的库 
modernizr 
html5shim 
innershiv 

4.使html5元素在旧版本IE中变成块级元素以及css重置 

5.始终使用流式布局fluid layout 

6.css媒介查询 media query 
@media screen and (min-width: 480px) {...} 

@media only screen and (min-width: 320px) {...} 

7.用户需求分析工具 
google analytics 
percentmobile 

jQuery mobile的浏览器分级列表:http://jquerymobile.com/gbs/ 
https://github.com/h5bp/mobile-boilerplate/wiki/Mobile-Matrices 

二、移动端的配置和优化 
1.提供启动图标(优化对各种浏览器的支持)

<link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114-precomposed.png"> # iphone4
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72-precomposed.png"> # ipad
<link rel="apple-touch-icon-precomposed" href="icons/apple-touch-icon-precomposed.png"> # android
<link rel="shortcut icon" href="icons/apple-touch-icon.png"> # symbian60

  

文档:关于触摸式图标的一起 

2.避免字体被浏览器自动重置 
html { 
    -webkit-text-size-adjust: none; 

改进 
html { 
    -webkit-text-size-adjust: 100%; 
    -ms-text-size-adjust: 100%; 
    text-size-adjust: 100%; 


3.使用px 

4.浏览器宽度完整解决方案 
<meta name="HandheldFriendly" content="true"> # 古老版本浏览器 
<meta name="MobileOptimized" content="320"> # 老版本浏览器 
<meta name="viewport" content="width=device-width"> 

5.修复移动版safari的re-flow scale问题 
<meta name="viewport" content="width=device-width,maximum-scale=1.0,minimum-scale=1.0"> # 不能缩放了 
使用js代码解决不能缩放问题:

var metas = document.getElementByTagName("meta");
var i;
if(navigator.userAgent.match("/iPhone/i)) {
  for(i=0; i<metas.length; i++) {
    if(meta[i].name == "viewport") {
      metas[i].content = "width=device-width,minimum-scale=1.0";
    }
  }
  document.addEventListener("gesturestart",gestureStart,false);
}

function gestureStart() {
  for(i=0; i<metas.length; i++) {
    if(meta[i].name == "viewport") {
      metas[i].content = "width=device-width,maximum-scale=1.6,minimum-scale=0.25";
    }
  }
}

  

更好的版本:https://gist.github.com/903131 
jquery mobile版本:https://gist.github.com/1183357 

6.在浏览器中启动原生应用 
查看safari,黑莓,索爱支持哪些链接启动原生应用 

7.iphone下全屏 
<meta name="apple-mobile-web-app-capable" content="yes"> # 从界面图标启动时,全屏
<meta name="apple-mobile-web-app-status-bar-style" content="black"> # 顶部一个状态栏 
<link rel="apple-touch-startup-image" href="img/1/splash.png"> # 预加载界面图片,类似ajax效果 

8.防止ios在聚焦时自动缩放,例如填写表单时 
<script> 
</script> 

9.禁用或者限制部分webkit特性 
-webkit-touch-callout 
-webkit-user-select 
-webkit-tap-highlight-color 
-webkit-appearance 

为狭窄的浏览器添加省略号功能: 
.ellipsis { 
  text-overflow: ellipsis; 
  overflow: hidden; 
  white-space: nowrap; 


三、移动设备的交互方式 
1.利用触控来移动页面元素 
2.检测盒处理横竖屏切换事件 
window.onorientationchange事件 
禁止横竖屏对于网友非常困难 
3.利用手势旋转页面元素 
ongestureend 
4.利用滑动创建图库 
zepto框架 

5.利用手势缩放图片 
ongesturechange 

四、构建快速响应式移动互联网站点 
1.html5标签 
header,nav,footer,small,address 

2.css3辅助 
polyfills库 
ultimate css gradient generator # css线性渐变效果编辑器 
CSS3 PIE # 兼容IE9 

3.响应式 
使用modernizr库开检查浏览器对html3和css3的支持 
可以用来检查后是否加载respond.min.js 
yepnope异步加载 

4.检测客户端 
.htaccess重定向 

5.使用书签冒泡为应用添加桌面快捷方式 
mobilebookmark bubble库 from google # 只支持safari 

6.构建可伸缩的文本输入框 
mobile boilerplate库的helper.js 

7.加速按钮反馈 
touchstart 

8.隐藏浏览器地址栏 
MBP.hideUrlBar(); 

五、移动设备访问 
1.获取位置信息 
经度、纬度、当前位置的精确程度 
navigator.geolocation.getCurrentPosition() 

2.跨浏览器定位 
geo-location-javascript库 
延伸:YQL Geo库 

手势缩放: 
<meta name="viewport" content="initial-scale=1.0,user-scalable=no" /> 

3.实时显示地理位置 
watchPosition 

4.DeviceOrientation事件 # 适用于ios 
包括设备移动事件和横竖屏切换事件 

5.使用foursquare定位 
Marelle基于jquery和coffeescript 
https://praized.github.com/marelle/ 
包括两个例子:登录和签到 

foursquare接口列表 
https://developer.foursquare.com/docs/libraries.html 

六、移动富媒体 
1.移动设备上播放音频 
<audio> 
不支持html5的浏览器使用polyfills解决 

2.移动设备上播放视频 
<video> 
不支持html5的使用<boject> 

http://diveintohtml5.info/video.html 

3.使用离线缓存 
使用.appcache 

4.使用网络存储 
web storage # 浏览器支持度最高 
html5的indexed database api和web sql database 
jqueryoffine库 

5.使用web workers 
javascript多线程的补充 

6.使用session和history api构建类Flash导航效果 

七、移动设备调试 
1.使用opera dragonfly远程调试 
2.使用weinre远程调试 

3.移动设备上使用firebug 
4.使用js console远程调试 

5.配置移动safari调试器 

八、服务器端性能调优 
1.防止移动设备转码 
.htaccess配置 

2.添加移动设备支持的MIME类型 
.htaccess配置 # 针对blackberry和Symbian等 

3.正确显示cache manifest # 主要用来做离线应用存储功能,但是扩展名不能被服务器识别 
.htccess配置 

4.在头文件中设置未来过期时间 
.htccess配置 

5.使用gzip压缩 
.htaccess配置 

6.移除etags 
.htaccess配置 

九、移动性能测试 
1.使用blaze的移动设备速度测试 

2.在线分析移动页面速度 
google page speed 

3.pcap网站性能分析 

4.移动版http archive 

5.使用jdrop存储性能数据 

十、拥抱移动互联网特性 
1.window.onerror 
2.使用ecmascript5中的新方法 
3.html5中的新输入类型 
date、datetime、month、time、range 
4.HTML中内嵌svg 
5.position:fixed 
6.overflow:scroll # ios5+ 

-webkit-overflow-scrolling: touch


转自:http://itindex.net/detail/50689-html5-%E7%A7%BB%E5%8A%A8-web

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码
HTML5使用DOM进行自定义控制
使用HTML5 Canvas绘制阴影效果的方法
使用PHP和HTML5 FormData实现无刷新文件上传
如何解决HTML5 虚拟键盘出现挡住输入框的问题
HTML5中div和section以及article的区别分析
html5和CSS 实现禁止IOS长按复制粘贴功能
html5 touch事件实现触屏页面上下滑动
canvas 模拟实现电子彩票刮刮乐的代码
HTML5 Plus 实现手机APP拍照或相册选择图片上传的功能
Android自定义环形LoadingView效果
HTML5 canvas绘制五角星的方法
html5使用html2canvas实现浏览器截图
使用Canvas处理图片的方法介绍
利用Canvas模仿百度贴吧客户端loading小球的方法