**H5 的经典网页布局:**
```html
<!-- 头部 -->
<header>
<ul class="nav"></ul>
</header>
<!-- 主体部分 -->
<div class="main">
<!-- 文章 -->
<article></article>
<!-- 侧边栏 -->
<aside></aside>
</div>
<!-- 底部 -->
<footer>
</footer>
```
## H5中新增的语义标签
- `<section>` 表示区块
- `<article>` 表示文章。如文章、评论、帖子、博客
- `<header>` 表示页眉
- `<footer>` 表示页脚
- `<nav>` 表示导航
- `<aside>` 表示侧边栏。如文章的侧栏
- `<figure>` 表示媒介内容分组。
- `<mark>` 表示标记 (用得少)
- `<progress>` 表示进度 (用得少)
- `<time>` 表示日期
### H5中新增的表单类型
- `email` 只能输入email格式。自动带有验证功能。
- `tel` 手机号码。
- `url` 只能输入url格式。
- `number` 只能输入数字。
- `search` 搜索框
- `range` 滑动条
- `color` 拾色器
- `time` 时间
- `date` 日期
- `datetime` 时间日期
- `month` 月份
- `week` 星期
### 表单属性
- `placeholder` (提示文字)
- `autofocus` 自动获取焦点
- `multiple` 文件上传多选或多个邮箱地址
- `autocomplete` 自动完成(填充的)。on 开启(默认),off 取消。用于表单元素,也可用于表单自身(on/off)
- `form` 指定表单项属于哪个form,处理复杂表单时会需要
- `novalidate` 关闭默认的验证功能(只能加给form)
- `required` 表示必填项
- `pattern` 自定义正则,验证表单。例如
### 表单事件
- `oninput()`:用户输入内容时触发,可用于输入字数统计。
- `oninvalid()`:验证不通过时触发。比如,如果验证不通过时,想弹出一段提示文字,就可以用到它。
```html
<style>
form {
width: 100%;
/* 最大宽度*/
max-width: 400px;
/* 最小宽度*/
min-width: 200px;
margin: 0 auto;
font-family: "Microsoft Yahei";
font-size: 20px;
}
input {
display: block;
width: 100%;
height: 30px;
margin: 10px 0;
}
</style>
</head>
<body>
<form action="">
<fieldset>
<legend>表单事件</legend>
<label for="">
邮箱:<input type="email" name="" id="txt1"/>
</label>
<label for="">
输入的次数统计:<input type="text" name="" id="txt2"/>
</label>
<input type="submit"/>
</fieldset>
</form>
<script>
var txt1 = document.getElementById('txt1');
var txt2 = document.getElementById('txt2');
var num = 0;
txt1.oninput = function () { //用户输入时触发
num++; //用户每输入一次,num自动加 1
//将统计数显示在txt2中
txt2.value = num;
}
txt1.oninvalid = function () { //验证不通过时触发
this.setCustomValidity('亲,请输入正确哦'); //设置验证不通过时的提示文字
}
</script>
</body>
</html>
```
## 多媒体
### 音频:`<audio>`标签来解决音频播放的问题。
```html
<audio src="music/yinyue.mp3" autoplay controls> </audio>
```
属性:
- `autoplay` 自动播放。写成`autoplay` 或者 `autoplay = ""`,都可以。
- `controls` 控制条。
- `loop` 循环播放。
- `preload` 预加载 同时设置 autoplay 时,此属性将失效。
<!--推荐的兼容写法:-->
<audio controls loop>
<source src="music/yinyue.mp3"/>
<source src="music/yinyue.ogg"/>
<source src="music/yinyue.wav"/>
</audio>
```
### 视频:`<video>`标签来解决视频播放的问题。
```html
<video src="video/movie.mp4" controls autoplay></video>
```
:属性:
- `autoplay` 自动播放。写成`autoplay` 或者 `autoplay = ""`,都可以。
- `controls` 控制条。
- `loop` 循环播放。
- `preload` 预加载 同时设置 autoplay 时,此属性将失效。
- `width`:设置播放窗口宽度。
- `height`:设置播放窗口的高度。
```html
<video controls autoplay>
<source src="video/movie.mp4"/>
<source src="video/movie.ogg"/>
<source src="video/movie.webm"/>
</video>
```