一、HTML5新增结构元素
之前,我们只能用万能的div标签,并为其设置不同的id如header, footer, sidebar等来分别表达头部,底部或者侧栏等。而现在代码编写者不再需要为id的命名费尽心思,对于手机、阅读器等设备更有语义的好处。
HTML 5增加了新的结构元素来表达这些最常用的结构:
- section: 这可以表达书本的一部分或一章,或者一章内的一节
- header: 页面主体上的头部。并非head元素
- footer: 页面的底部(页脚),可以是一封邮件签名的所在
- nav: 到其他页面的链接集合
- article: 诸如blog, 杂志,纲要等之中的一条独立记录
举个例子,一个blog的首页,用HTML 5写的话,可以是这样:
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>HTML5 新增结构元素</
title
>
</
head
>
<
body
>
<
header
>
<
hgroup
>
<
h1
>Page title</
h1
>
<
h2
>Page subtitle</
h2
>
</
hgroup
>
</
header
>
<
nav
>
<
ul
>
Navigation...
</
ul
>
</
nav
>
<
section
>
<
article
>
<
header
>
<
h1
>Title</
h1
>
</
header
>
<
section
>
Content...
</
section
>
</
article
>
<
article
>
<
header
>
<
h1
>Title</
h1
>
</
header
>
<
section
>
Content...
</
section
>
</
article
>
</
section
>
<
aside
>
Top links...
</
aside
>
<
figure
>
<
img
src
=
"..."
/>
<
figcaption
>Chart 1.1</
figcaption
>
</
figure
>
<
footer
>
Copyright ©
<
time
datetime
=
"2010-11-08"
>2010</
time
>.
</
footer
>
</
body
>
</
html
>
二、HTML5新增块级元素
- aside: 定义页面内容之外的内容,比如侧边栏
- figure: 定义媒介内容的分组,以及它们的标题
- figcaption: 媒介内容的标题说明
- dialog: 定义对话(会话)
aside可以用以表达注记、贴士、侧栏、摘要、插入的引用等诸如作为补充主体的内容。比如这样表达blog的侧栏:
<
aside
>
<
h3
>最新文章</
h3
>
<
ul
>
<
li
><
a
href
=
"#"
mce_href
=
"#"
>文章标题</
a
></
li
>
</
ul
>
</
aside
><>/pre
<
figure
>
<
figcaption
>PRC</
figcaption
>
<
legend
>Figure 1. JavaScript Alert Box.</
legend
>
<
img
alt
=
"图片可替换文本"
src
=
"img.png"
mce_src
=
"img.png"
/>
</
figure
>
dialog元素用于表达人们之间的对话。在HTML 5中,dt用于表示说话者,而dd则用来表示说话者的内容。如:
<
dialog
>
<
dt
>悟空</
dt
>
<
dd
>什么是幸福</
dd
>
<
dt
>佛</
dt
>
<
dd
>我请你穿越这片田野,去摘一朵最美丽的花,但是有个规则:你不能走回头路,而且你只能摘一次。</
dd
>
</
dialog
>
三、HTML5新增行内语义标签元素
- mark: 定义有记号的文本
- time: 定义日期/时间
- meter: 定义预定义范围内的度量
- progress: 定义运行中的进度(进程)
mark元素用来标记一些不是那么需要着重强调的文本。
<
p
>今天别忘记了买 <
mark
>牛奶</
mark
>。</
p
>
time元素如其名,用来表达时间。它需要一个datetime的特性来标明机器能够认识的时间,如:
<
p
>On Saturdays, we open at <
time
>09:00</
time
>.</
p
>
<
p
>The concert is <
time
datetime
=
"2009-02-18"
>next Wednesday</
time
>.</
p
>
<
p
>We finally hit the road at <
time
datetime
=
"2009-02-17T05:00-07:00"
>5am last Tuesday</
time
>.</
p
>
meter元素表达特定范围内的数值。可用于薪水、百分比、分数等。比如:
<
p
>您的分数是:
<
meter
value
=
"88.7"
min
=
"0"
max
=
"100"
low
=
"65"
high
=
"96"
optimum
=
"100"
>B+</
meter
>.
</
p
>
<
ul
>
<
li
><
meter
>25%</
meter
></
li
>
<
li
><
meter
>1/4</
meter
></
li
>
<
li
><
meter
>200 out of 800</
meter
></
li
>
<
li
><
meter
>max: 100; current: 25</
meter
></
li
>
<
li
><
meter
min
=
"0"
max
=
"100"
value
=
"25"
></
meter
></
li
>
</
ul
>
<
dl
>
<
dt
>Width:</
dt
>
<
dd
><
meter
min
=
"0"
max
=
"200"
value
=
"12"
title
=
"millimeters"
>173mm</
meter
></
dd
>
<
dt
>Height:</
dt
>
<
dd
><
meter
min
=
"0"
max
=
"100"
value
=
"2"
title
=
"millimeters"
>104mm</
meter
></
dd
>
</
dl
>
可以使用 <progress> 标签来显示 JavaScript 中耗费时间的函数的进度。
对象的下载进度:
<
progress
>
<
span
id
=
"objprogress"
>85</
span
>%
</
progress
>
四、HTML5新增行交互性标签元素
- details: 定义元素的细节
- datagrid: 定义树列表 (tree-list) 中的数据
- datalist: 定义选项列表
- menu: 定义菜单列表
- command: 定义命令按钮
details用来表示一段具体的内容,但是内容默认可能不显示,通过某种手段(如点击)与legend交互才显示出来。这跟现在各种通过JavaScript隐藏一段内容,在点击后才显示出来的做法有些类似。比如:
1 | < details open = "open" >This document was written in 2010.</ details > |
datagriddatagrid用来控制数据,可以由用户或者脚本来更新,比如:
1 2 3 4 5 6 7 8 9 10 11 12 | < datagrid > < ol > < li >(datagrid row 0)</ li > < li >(datagrid row 1) < ol style = "list-style-type:lower-alpha;" > < li >(datagrid row 1,0)</ li > < li >(datagrid row 1,1)</ li > </ ol > </ li > < li >(datagrid row 2)</ li > </ ol > </ datagrid > |
datalist 标签定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。datalist 及其选项不会被想显示出来,它仅仅是合法的输入值列表。请使用 input 元素的 list 属性来绑定 datalist。
1 2 3 4 5 6 7 8 9 10 11 12 13 | < h4 >Example 1 (for HTML 5 browsers)</ h4 > < p > < label > Enter your favorite cartoon character:< br /> < input type = "text" name = "favCharacter" list = "characters" > < datalist id = "characters" > < option value = "Homer Simpson" > < option value = "Bart" > < option value = "Fred Flinstone" > </ datalist > </ label >< br /> </ p > < h4 >Example 2 (for both legacy and HTML 5 browsers)</ h4 > |
menu 在HTML 2就存在了,不过HTML 4把它废弃了。HTML 5废物利用,并在期内加上command元素。autosubmit为true时,表单控件改变时自动提交。label为菜单定义一个可见的标注,type是表现的方式,默认为list,还有context和toolbar。
1 2 3 4 5 6 7 | < menu label = "菜单" type = "toolbar" autosubmit = "true" > < li >< input type = "checkbox" />Red</ li > < li >< input type = "checkbox" />blue</ li > </ menu > < menu > < command type = "command" >Click Me!</ command > </ menu > |
五、HTML5新增行多媒体标签元素
- video: 定义视频
- audio: 定义音频
- source: 媒介元素(比如 <video> 和 <audio>)定义媒介资源
video标签定义视频,比如电影片段或其他视频流:
1 2 3 | < video src = "/video/pass-countdown.ogg" width = "300" height = "150" controls> < p >If you are reading this, it is because your browser does not support the HTML5 video element.</ p > </ video > |
audio标签定义声音,比如音乐或其他音频流:
1 2 3 | < audio src = "someaudio.wav" > 您的浏览器不支持 audio 标签。 </ audio > |
1 2 3 4 5 | < audio > < source src = "/music/good_enough.wma" type = "audio/x-ms-wma" > < source src = "/music/good_enough.mp3" type = "audio/mpeg" > < p >If you are reading this, it is because your browser does not support the HTML 'audio' element.</ p > </ audio > |
转:http://project.qqworld.org/archives/650