HTML5的结构和语义(3):语义性的块级元素


Posted in HTML / CSS onOctober 17, 2008

HTML5还增加了一些纯语义性的块级元素:

aside

figure

dialog

我在文章和书中一直使用前两个元素。第三个元素我不经常用,它主要用于书面文本。
aside

aside元素代表说明、提示、边栏、引用、附加注释等,也就是叙述主线之外的内容。例如,在developerWorks文章中,常常会看到用表格形式编写的边栏,见代码3用HTML4编写的developerWorks边栏。
<tablealign="right"border="0"cellpadding="0"cellspacing="0"width="40%">
<tbody><tr><tdwidth="10">
<imgalt=""src="//www.ibm.com/i/c.gif"height="1"width="10"></td>
<td>
<tableborder="1"cellpadding="5"cellspacing="0"width="100%">
<tbody><tr><tdbgcolor="#eeeeee">
<p><aname="xf-value"><spanclass="smalltitle">.xf-value</span></a></p>
<p>
The<codetype="inline">.xf-value</code>selectorusedherestylestheinput
fieldvaluebutnotitslabel.Thisisactuallyinconsistent
withthecurrentCSS3draft.Theexamplereallyshouldusethe
<codetype="inline">::value</code>pseudo-classinsteadlikeso:
</p>
<tableborder="0"cellpadding="0"cellspacing="0"width="100%">
<tbody><tr><tdclass="code-outline">
<preclass="displaycode">input::value{width:20em;}
#ccnumber::value{width:18em}
#zip::value{width:12em}
#state::value{width:3em}</pre>
</td></tr></tbody></table><br>
<p>
However,Firefoxdoesn'tyetsupportthissyntax.
</p>
</td></tr></table>

在HTML5中,可以按照更有意义的方式编写这个边栏,见代码4用HTML5编写的developerWorks边栏。
<aside>
<h3>.xf-value</h3>
<p>
The<codetype="inline">.xf-value</code>selectorusedherestylestheinput
fieldvaluebutnotitslabel.Thisisactuallyinconsistent
withthecurrentCSS3draft.Theexamplereallyshouldusethe
<codetype="inline">::value</code>pseudo-classinsteadlikeso:
</p>

<preclass="displaycode">input::value{width:20em;}
#ccnumber::value{width:18em}
#zip::value{width:12em}
#state::value{width:3em}</pre>
<p>
However,Firefoxdoesn'tyetsupportthissyntax.
</p>
</aside>

浏览器可以决定把这个边栏放在哪里(可能需要用一点儿CSS代码)。
figure

figure元素代表一个块级图像,还可以包含说明。例如,在许多developerWorks文章中,可以看到代码5用HTML4编写的developerWorks图这样的标记其结果见图1。
<aname="fig2"><b>Figure2.InstallMozillaXFormsdialog</b></a><br/>
<imgalt="AWebsiteisrequestingpermissiontoinstallthefollowingitem:
MozillaXForms0.7Unsigned"
src="installdialog.jpg"border="0"height="317"hspace="5"vspace="5"width="331"/>
<br/>

图1.InstallMozillaXFormsdialog
HTML5的结构和语义(3):语义性的块级元素

在HTML5中,可以按照更有语义性的方式编写这个图,见代码6用HTML5编写的developerWorks图。
<figureid="fig2">
<legend>Figure2.InstallMozillaXFormsdialog</legend>
<imgalt="AWebsiteisrequestingpermissiontoinstallthefollowingitem:
MozillaXForms0.7Unsigned"
src="installdialog.jpg"border="0"height="317"hspace="5"vspace="5"width="331"/>
</figure>

最重要的是,浏览器(尤其是屏幕阅读器)可以明确地将图和说明联系在一起。

figure元素不只可以显示图片。还可以使用它给audio、video、iframe、object和embed元素加说明。
dialog

dialog元素表示几个人之间的对话。HTML5dt元素可以表示讲话者,HTML5dd元素可以表示讲话内容。所以,在老式浏览器中也可以以合理的方式显示对话。代码7显示在Galileo的“DialogueConcerningtheTwoChiefWorldSystems”上的一段著名对话。

代码7.用HTML5编写的Galilean对话
<dialog>
<dt>Simplicius</dt>
<dd>AccordingtothestraightlineAF,
andnotaccordingtothecurve,suchbeingalreadyexcluded
forsuchause.</dd>
<dt>Sagredo</dt>
<dd>ButIshouldtakeneitherofthem,
seeingthatthestraightlineAFrunsobliquely.Ishould
drawalineperpendiculartoCD,forthiswouldseemtome
tobetheshortest,aswellasbeinguniqueamongthe
infinitenumberoflongerandunequaloneswhichmaybe
drawnfromthepointAtoeveryotherpointoftheopposite
lineCD.</dd>
<dt>Salviati</dt>
<dd><p>Yourchoiceandthereasonyou
adduceforitseemtomemostexcellent.Sonowwehaveit
thatthefirstdimensionisdeterminedbyastraightline;
thesecond(namely,breadth)byanotherstraightline,and
notonlystraight,butatrightanglestothatwhich
determinesthelength.Thuswehavedefinedthetwo
dimensionsofasurface;thatis,lengthandbreadth.</p>
<p>Butsupposeyouhadtodetermineaheight—for
example,howhighthisplatformisfromthepavementdown
belowthere.Seeingthatfromanypointintheplatformwe
maydrawinfinitelines,curvedorstraight,andallof
differentlengths,totheinfinitepointsofthepavement
below,whichofalltheselineswouldyoumakeuseof?</p>
</dd>
</dialog>

对于这个元素的准确语法还有争议。一些人希望在dialog元素中嵌入非对话文本(比如剧本中的舞台说明),还有人不喜欢扩展dt和dd元素的作用。尽管在具体语法方面有争议,但是大多数人都认为以这样的语义性方式表达对话是好事情。

(待续)

HTML / CSS 相关文章推荐
CSS3+DIV实现漂亮的动画彩色标签
Jun 16 HTML / CSS
纯css3显示隐藏一个div特效的具体实现
Feb 10 HTML / CSS
css3 中的新特性加强记忆详解
Apr 16 HTML / CSS
CSS3实现时间轴效果
Jul 11 HTML / CSS
css3实现文字扫光渐变动画效果的示例
Nov 07 HTML / CSS
css3通过scale()、rotate()实现放大、旋转
Mar 19 HTML / CSS
HTML5 Web 存储详解
Sep 16 HTML / CSS
微信浏览器左上角返回按钮拦截功能
Nov 21 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
Jan 30 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
Jan 30 HTML / CSS
整理HTML5中支持的URL编码与字符编码
Feb 23 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
Aug 20 HTML / CSS
HTML5的结构和语义(2):结构
Oct 17 #HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
Oct 17 #HTML / CSS
HTML5中语义化 b 和 i 标签
Oct 17 #HTML / CSS
HTML5的结构和语义(5):内嵌媒体
Oct 17 #HTML / CSS
HTML5的结构和语义(5):交互
Oct 17 #HTML / CSS
HTML5 语义化结构化规范化
Oct 17 #HTML / CSS
HTML5 与 XHTML2
Oct 17 #HTML / CSS
You might like
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
Javascript的闭包
2009/12/31 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
用python 制作图片转pdf工具
2015/01/30 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
详解Python 解压缩文件
2019/04/09 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
python爬取招聘要求等信息实例
2020/11/20 Python
公司庆典邀请函范文
2014/01/13 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
社区活动总结范文
2015/05/07 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
Hive HQL支持2种查询语句风格
2022/06/25 数据库