原文  http://itindex.net/detail/50689-html5-移动-web
主题 HTML5

一、配置移动开发环境

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, maximum-scale=1.0, 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

转载于:https://www.cnblogs.com/MakethingsEasy/p/5332262.html

html5移动web开发实战必读书记相关推荐

  1. 《HTML5移动Web开发实战》—— 1.6 在移动网站中使用HTML5

    本节书摘来异步社区<HTML5移动Web开发实战>一书中的第1章,第1.6节,作者:石川,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.6 在移动网站中使用 ...

  2. HTML5移动Web开发实战 PDF扫描版​

    <HTML5移动Web开发实战>提供了应对这一挑战的解决方案.通过阅读本书,你将了解如何有效地利用最新的HTML5的那些针对移动网站的功能,横跨多个移动平台.全书共分10章,从移动Web. ...

  3. 京东最爱考的前端面试题,html5移动web开发实战

    前言 不要为了面试而去背题,匆匆忙忙的,不仅学不进去,背完了几天后马上会忘记. 你可能会说,"没办法,这不是为了能找份工作嘛!".我想说的是,"那你没开始找工作的时候,咋 ...

  4. 《Web 标准实战》——Web开发人员必读的一本书

    <Web 标准实战>--Web开发人员必读的一本书 精彩推荐:图灵4月精彩新书预告 原 书 名:Web Standards Solutions: The Markup and Style ...

  5. go+vue——基于gin框架和gorm的web开发实战

    go+vue--基于gin框架和gorm的web开发实战 gin框架 视频.资料.笔记 安装Go环境, 添加环境变量(可能自动添加好) 下载 Go 环境变量 goland 报错: GOROOT is ...

  6. JAVA WEB开发实战-张晨光-专题视频课程

    JAVA WEB开发实战-379人已学习 课程介绍         走进JSP.掌握JSP语法.JSP内置对象.Servlet技术.综合实验(一)--JSP使用Model2实现登录模块.EL表达式语言 ...

  7. HTML5 Canvas游戏开发实战 PDF扫描版

    HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读 ...

  8. 《HTML5 Canvas游戏开发实战》——2.1 绘制基本图形

    本节书摘来自华章计算机<HTML5 Canvas游戏开发实战>一书中的第2章,第2.1节,作者:张路斌著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2. ...

  9. HTML5的web开发,基于Html5技术的WEB开发

    摘 要:HTML是互联网上应用最广泛的语言,得到了业界大力支持,已经成为WEB发展的标准.它强大了对多媒体的支持力度和远程与本地对数据的处理能力,本文对HTML5的新特性进行了总结,分析了该语言在移动 ...

最新文章

  1. elastic stack中的Beats是什么?
  2. 为什么Python在数据科学领域比R更受欢迎呢?
  3. Exchange监控用户邮件
  4. 使用 Truffle Develop 和 console
  5. python class类_Python——入门级(class类)
  6. 线程池参数详解_java中常见的六种线程池详解
  7. linux写入二进制文件内容,linux – 从管道读取数据并写入标准输出,中间延迟.必须处理二进制文件...
  8. c cuda 指定gpu_GPU并行编程:熟练使用CUDA C语言
  9. Spring Boot Security 整合 OAuth2 设计安全API接口服务
  10. bash手册 之重定向原理与实现
  11. xps文件的查看及转换
  12. matlab倒立摆pid仿真,一级倒立摆课程设计--倒立摆PID控制及其Matlab仿真
  13. 【云原生】Docker高级篇之网络、compose、可视化、监控
  14. 【离散数学】搜集、并搜集、交搜集、求A = {{Φ, 2}, {2}}的并搜集和交搜集
  15. 学做 方玲玉 网络营销_网络营销实务教学课件作者方玲玉参考答案第08讲网络产品独特卖点提炼课件.ppt...
  16. grafana设置邮件监控报警
  17. 数字通信——第一章 绪论
  18. 否打开人工智能的“黑箱”?
  19. 智慧城市与数字政府、城市大脑、一网统管之间什么关系
  20. 手机版邮箱究竟有什么优势?手机怎么设置邮箱?

热门文章

  1. 目录遍历漏洞和文件读取漏洞的区别
  2. Upload LABS Pass-7
  3. React项目build之后资源文件路径不正确或打开空白页的问题及简易解决方法
  4. SQL的Join使用图解教程
  5. 关于ISA2006引起网速慢或间歇性断网的问题的解决方法
  6. 判断点是否在多边形内
  7. 安装mysql的一些小问题
  8. 微信小程序实现转义换行符
  9. Day10 sambaNFS(Enginner04)
  10. 添加 XmlDocument 元素 和 属性