## 一、H5 标签
有时候不太确定某个 Web API 与浏览器、手机浏览器能否兼容?`CanIUse(https://www.caniuse.com)`让你轻松测试 Web API 与浏览器的兼容情况。
![](http://cndpic.dodoke.com/14701cc8e3592a3d8fc19e9c496b140f)
对于不支持 H5 的浏览器,可以引入`html5shiv.js`来达到兼容的效果。
## 二、CSS3
![](http://cndpic.dodoke.com/14701cc8e3592a3d8fc19e9c496b140f)
对于某些浏览器支持`CSS3`,但是需要添加浏览器前缀。同时也可以使用`modernizr.js`来对不支持的浏览器做兼容处理。
```
<header>header</header>
<footer>footer</footer>
```
```
.flexbox header {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
justify-content: center;
-ms-align-items: center;
align-items: center;
}
.no-flexbox header {
text-align: center;
line-height: 50px;
}
```
```
<script src="js/modernizr.js"></script>
```
## 三、JS
在 Web 应用中,实现动画效果的方法比较多,Javascript 中可以通过定时器 setTimeout 来实现,css3 可以使用 transition 和 animation 来实现,html5 中的 canvas 也可以实现。除此之外,html5 还提供一个专门用于请求动画的 API,那就是 requestAnimationFrame,顾名思义就是**请求动画帧。**
```
// 判断requestAnimationFrame是否可用
if (window.requestAnimationFrame) {
// ...
}
// 或者
var requestAnimationFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (fn) {
setTimeout(fn, 20)
};
```
- 第一章:移动开发入门
- 第一节:概述
- 第二节:基础概念
- 第一课时:像素
- 第二课时:视口
- 第二章:Flex 布局
- 第一节:概述
- 第二节:容器属性
- 第一课时:flex-direction 属性
- 第二课时:flex-wrap 属性
- 第三课时:flex-flow 属性
- 第四课时:justify-content 属性
- 第五课时:align-items 属性
- 第六课时:align-content 属性
- 第三节:项目属性
- 第一课时:order 属性
- 第二课时:flex-grow 属性
- 第三课时:flex-shrink 属性
- 第四课时:flex-basis 属性
- 第五课时:flex 属性
- 第六课时:align-self 属性
- 第四节:Flex 实例
- 第一课时:常见页面布局
- 第三章:响应式布局
- 第一节:概述
- 第二节:媒体查询
- 第一课时:概述
- 第二课时:响应式设计
- 第三节:栅格系统
- 第一课时:概述
- 第二课时:案例分析
- 第三课时:Bootstrap 简介
- 第四节:响应式案例
- 第一课时:三星首页
- 第四章:移动端适配
- 第五章:移动端事件
- 第一节:概述
- 第二节:touch 事件
- 第三节:触摸事件对象
- 第四节:其他事件
- 第五节:移动端幻灯片
- 第六章:移动端常见问题
- 第一节:浏览器兼容性
- 第二节:移动端动画
- 第三节:300ms 延迟
- 第四节:文字溢出省略
- 第五节:水平居中和垂直居中
- 第七章:项目案例
- 第一节:美团外卖
- 第一课时:首页
- 第二课时:订单页面
- 第三课时:我的页面
- 第四课时:详情页面
- 第五课时:购物车页