一、语义化标记的好处
- HTML结构清晰
- 代码可读性较好
- 无障碍阅读
- 搜索引擎可以根据标签的语言确定上下文和权重问题
- 移动设备能够更完美的展现网页(对css支持较弱的设备)
- 便于团队维护和开发
二、HTML5新特性
1. Doctype更简单<!DOCTYPE html>
2. 简单的编码类型 <meta charset=”utf-8″ />
3. 大小写都可 <input tYPe="text" name="" id="">
4. 布尔值 <input type="radio" checked>
5. 可以省略引号 <input type=radio>
6. 可以进行省略的标签
1) 不允许写结束符的标签:area、basebr、col、command、embed、hr、img、input、keygen、link、meta、 param、source、track、wbr
2)可以省略结束符的标签:li、dt、dd、p、rt、optgroup、option、colgroup、thread、tbody、tr、td、th
3)可以完全省略的标签:html、head、body、colgroup、tbody
三、版本与规格
HTML使用<!DOCTYPE >来声明其版本及规格。
DTD是通用标记语言SGML用于定义文档遵循何种标准的一套语法规则,HTML4.01基于SGML,因此HTML4.01也引入了DTD的声明方式,一共有三种模式:
Strict:严格模式,不允许样式标记和框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Transitional:松散(混合、过渡)模式,允许样式标记,不允许框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Frameset:框架集模式,允许样式标记和框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
HTML5不基于SGML,因此没有引入DTD,也只有一种声明:
<!DOCTYPE html>
四、标签
图例:H5元素;替换元素 *;行内元素
注:仅包含所有H5支持的标签。
从CSS的角度看,替换元素是一种内容样式在CSS控制范围之外的元素,它的内容是一个独立的外部对象。典型的替换元素有<img>, <object>, <video>,以及某些表单元素如<textarea>和<input>。有的元素如<audio>和<canvas>仅在某些情况下是替换元素。使用伪元素content属性插入的对象属于匿名替换元素。
div | division分区 | aside | 侧栏 |
header | 头部 | footer | 页脚 |
nav | 导航 | section | 区域 |
article | 文章 |
abbr | abbreviation缩写 | q | quotation短引用,自动加引号 |
strong | 强调,加粗 | bold | bold粗体 |
em | emphasized 斜体 | i | italic斜体 |
samp | sample 示例文本 | cite | 引用 |
code | 代码 | var | varible变量 |
dfn | 定义项 | time | 时间 |
kbd | keyboard键盘文本 | sub/sup | 上标/下标 |
del | deleted 删除文本 | address | 联系信息 |
ins | insert 插入文本,下划线 | mark | 标记文本,背景色 |
span | 无语义 | small | 小号字 |
blockquote | 块文本引用 | h1~h6 | 标题 |
bdi | bidi isolate 方向隔离 | bdo | bidi override 方向重置 |
p | paragraph 段落 | pre | preformatted 预格式化文本 |
img* | 图片 | audio | 音频 |
source* | 影音资源 | track* | 字幕轨道 |
canvas | 画布 | vedio | 视频 |
figure | 插图 | figcaption | 插图的标题 |
embed* | 嵌套 | object | 对象 |
param* | parameter对象参数 |
ol | 有序列表 | ul | 无序列表 |
li | 列表项 | dl | 自定义列表 |
dt | defined trem | dd | defined description |
table | 表格 | thead | 表头 |
tbody | 表格主体 | tfoot | 表尾 |
tr | table row 行 | td | table data cell |
th | table header cell |
form | 表单 | input* | 输入型表单元素 |
textarea | 文本域 | select | 选择框 |
option | 下拉列表项 | optgroup | 下拉列表项分组 |
button | 自定义按钮 | label | 标签 |
fieldset | 用于表单元素分组 | legend | 为fieldset添加标题 |
datalist | input选填项 | keygen* | key generator密匙 |
output | 输出 |
a | anchor 锚 | wbr* | 单词换行 |
hr* | horizontal rule 水平尺 | br | break 换行 |
meter | 比例条 | progress | 进度条 |
rp,rt,ruby | 用于东亚字符 | command | 仅IE支持 |
map | 图像映射 | area* | 图像映射区域 |
details | 详细信息 | summary | 详细信息的标题 |
dialog | 对话窗口与 | menu | 菜单 |
menuitem | 菜单项 |
title | 网页标题 | link* | 链接 |
script | 脚本 | nosrcipt | 无脚本 |
meta* | 元信息 | base* | 基准url |
html | 根元素 | head | 头部 |
body | 主体 | iframe | 框架 |
五、全局标准属性
class、id、title、lang、style、tabindexdir:设置内容的文本方向
accesskey:设置激活元素的快捷键
/* H5新增 */
contenteditable:规定内容是否可编辑,值为布尔值
contextmenu:与menu标签配合使用,用于自定义右键菜单,目前仅火狐实现
data-*:用于嵌入自定义数据
draggable:用于规定元素是否可拖动,值为布尔值
dropzone:目前不支持。copy | move | link
hidden:没有值,单独使用。IE不支持
spellcheck:规定是否对元素内容进行拼写检查,值为布尔值
translate:规定是否翻译元素内容。支持较差。yes | no
六、行内元素(inline)与块级元素(block-level)
区别:
1、在正常流中是否另起一行
2、盒模型规则不同
七、兼容性
H5新标签的兼容性问题主要存在于IE9以下的浏览器。方法一:在head中引入处理兼容性问题的js
< ! - - [ if lt IE9 ] >
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
< ! [ endif ] - - >
然后需显示的将H5标签设置为block
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
方法二:document.createElement()
八、渐进增强与优雅降级
渐进增强和优雅降级是两种相对的开发模式,目的是实现应用的兼容性、健壮性。它们的区别仅在于方向不同:渐进增强首先照顾老版本浏览器,然后在最低可用版本基础上增加新特性;优雅降级则率先针对最新的浏览器,使用最新的技术,实现最好的效果,然后再向下兼容低端浏览器。
九、常用转义字符
字符 | 十进制 | 转义字符 | 字符 | 十进制 | 转义字符 |
---|---|---|---|---|---|
空格 |   | | ¢ | ¢ | ¢ |
< | < | < | £ | £ | £ |
> | > | > | ÷ | ÷ | ÷ |
© | © | © | ® | ® | ® |
十、参考文档
【1】重新梳理HTML基础知识 点击打开链接