原文地址:http://net.tutsplus.com/articles/web-roundups/10-rare-html-tags-you-really-should-know/
如今,Web开发工程师在学习和工作中通常都使用了不止一门语言。因此,对一门语言的方方面面我们很难说得上都去了解,要精通一门语言也是相当有难度,比如语言中一些生僻但可能很有用处的关键字用法。
虽然我们以前可能对这些非常少见的HTML标签并不了解或没能完全用好他们,不过亡羊补牢,为时未晚,现在开始了解并能在以后的开发中正确的用上这些以前没用过的标签也不算太晚。
这里我给出了10个最不常见并且常被人误用的HTML标签。虽然可能并不像其他HTML标签那么常见,但在某些特殊的情景下,他们仍然相当有用。
1. <cite>
相信大家都对<blockquote>不陌生吧,但你知道<blockquote>其实有个小弟叫<cite>不?<cite>允许在一个元素中定义一段文本作为引用。一般情况下,浏览器会把<cite>标签下的文本设置为斜体字,不过这可能会根据CSS有所改变。
<cite>标签在书籍目录和其他站点地址引用的时候非常有用。这里给出一个如何在一段文字中使用<cite>标签的例子:
张三的突破性专著张三自传给网络带来一股新气象.
2. <optgroup>
当你想在一个下拉框中对根据不同类型分组的选项添加一些定义时,<optiongroup>标签将会非常有用。例如,如果你想根据时间对电影进行分组,代码可以这样写:
<LABEL for=showtimes>Showtimes</LABEL>
<SELECT id=showtimes name=showtimes><OPTGROUP label=1PM></OPTGROUP> <OPTION selected value=titanic>Twister</OPTION> <OPTION value=nd>Napoleon Dynamite</OPTION><OPTION value=wab>What About Bob?</OPTION><OPTGROUP label=2PM></OPTGROUP> <OPTION value=bkrw>Be Kind Rewind</OPTION> <OPTION value=stf>Stranger Than Fiction</OPTION></SELECT>
例子:
Showtimes TwisterNapoleon DynamiteWhat About Bob?Be Kind RewindStranger Than Fiction
3. <acronym>
<acronym>标签通常用于对一句话(词组)添加定义或者更详细的解释。当用户将鼠标停留在添加了<acronym>标签的文字上面,添加的注释或定义会在文字下方显示。如:
微博网站 <ACRONYM title="Founded in 2006"> Twitter</ACRONYM> 最近引起了互联网上的一股新的风潮!
例子:
微博网站 Twitter最近引起了互联网上的一股新的风潮!
4. <address>
<address>标签是个相当少见的标签,不过这并不代表它没什么用处。望文生义,<address>允许你在HTML中根据语义来标记地址。这个很好用的标签同样会把它内部的数据用斜体字标识,不过,这个样式很容易通过CSS修改。
<address>
中国,上海市,闵行区,XX路,XX小区,XXX室
</address>
例子:
中国,上海市,闵行区,XX路,XX小区,XXX室
5. <ins> 和 <del>
如果你想通过标记来显示文档编辑样式,<ins>和<del>刚好可以用到。就像它们的名字,<ins>通过一个下划线来突出那些被添加进文档的内容,而<del>则通过删除线来显示那些从中删除的文字。
没有了驴子,我们的日子还要怎么<DEL>过下去</DEL> <INS>活下去</INS>?
例子:没有了驴子,我们的日子还要怎么过下去 活下去?
6. <label>
当标记文档时,表格元素很容易被遗忘。在表格元素中,最容易被遗忘的元素之一怕要数<label>标签了。但对<label>标签来说,它不仅可以相当方便的表示一段文字,同时,它更能通过for属性来指定标签被用于哪个元素。这些<label>不仅很容易被定义样式,它们还允许你将标签的文字设计成像按钮一样可以被用户点击。
<LABEL for="username">用户名</LABEL>
<INPUT id="username" type="text">
7. <fieldset>
<fieldset>是一个相当好用的标签,它可将表单内的相关元素按逻辑分组。一旦这些元素通过<fieldset>标签放到一起,另外通过将<label>标签和fieldset绑定可以为分组定义标题。
<FORM><FIELDSET>
<LEGEND>你觉得自己牛X么?</LEGEND>
Yes<INPUT value=yes type=radio name=yes>
No <INPUT value=no type=radio name=no>
</FIELDSET>
</FORM>
例子:
你觉得自己牛X么?Yes No8. <abbr>
<abbr>和<acronym>是一类的标签,只是<abbr>标签只用于定义缩写的词组。就像<acronym>,相当于你给元素添加了一个标题或称号。当用户将鼠标悬停在缩写词上面,它的全称会在下方显示。<abbr>标签很少被用到,不过它对屏幕阅读器,拼写检查程序和搜索引擎很有用。
他<ABBR title="妈">文明用语</ABBR>的
例子:他文明用语的!
9. rel
Rel是一个相当有用的属性,基本上任何一个HTML元素都可以应用Rel属性(注1)。它可以为那些没有别的方式提供详细信息的元素提供额外的信息。这在javascript和HTML一起工作时尤其有用。如果你有一个你可能想在内部编辑,你可以这样添加代码:
![ContractedBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
< body >
< p >< a id ="myAnchor" rel ="index"
href ="http://www.w3school.com.cn" > Visit W3School.com.cn </ a ></ p >
< script type ="text/javascript" >
x = document.getElementById( " myAnchor " );
document.write(x.rel);
</ script >
</ body >
</ html >
javascript会找到rel属性为clickable的link元素,然后它可以接着通过ajax内部改变元素。当然,这个只是你可以应用rel属性的无数种情况中的一种,你可以用其他方式来很好的使用rel属性。
10. <wbr>
<wbr>(注2)是个基本已经销声匿迹的标签。坦诚的说,我怀疑读者中的大多数都没接触过这个标签,毕竟它太少用到了(真的,在写这篇文章之前,我自己都没见过这个标签)。这个标签允许你指定一块区域来强制使用换行符,但仅仅是确实必要的时候。该元素很特殊因为它定义在浏览器中添加换行符,如果需要的话,它可以在你极力避免浏览器中出现横向的滚动条时实现符合要求的界面。
如果你想在不必使用<wbr>标签的情况下达到相同的效果,你也可以尝试​或­ 。但千万注意,这三个标签中没有一个可以完全支持所有浏览器的。如果你想看看哪些浏览器支持这三种标签可以看看这篇文章。
译者注:
注1,实际上rel通常用在a和link标签中,它常和rev一起出现。
注2,wbr不是标准的html标签,它最开始是网景公司添加的,但随后被移除掉了。
附注:
这篇文章仅仅是一个参考,实际上,由于一些地方使用和解释得并不清楚, 它也引起了比较多的争论,建议如果确实对这些标签有兴趣研究的朋友,可以参看下原文地址并仔细的查看文章的一些回复。
另外有朋友认为这些少见的标签兼容性会很差,所以我们应少用。然而恰恰相反,上面列举的标签,除了最后一个不符合标准不推荐使用之外,其他都符合W3C标准,它们兼容目前任何主流浏览器。当然,由于<acronym>和<abbr>功能基本一样,在新的html 5标准中不推荐使用<acronym>,w3c推荐用<abbr>代替<acronym>。
最后有人可能认为这里的一些标签都可以用其他一些常见标签实现相同功能,因此没必要使用。不过正如回复中沉默杨仔所说:“w3c就是要语义化页面内容”,对用户说,可能你可以通过普通标签实现一样的功能,但对机器(e.g.屏幕阅读器,单词拼写检查程序,搜索引擎等)来说,这种标签它们更容易懂。所以我认为,如果你的网页中真有这些标签可以应用的场合,最好还是使用这些标签来实现相应的功能。