【原】HTML5 新增的结构元素——能用并不代表对了
做移动端有一段时间,今天有同事问了我 article 和 section 标签的使用,模模糊糊的解释了下,他似懂非懂,有点小尴尬。忽然间觉得自己有必要再翻翻书籍,重温下 html5 的新元素。html5 新增的结构元素,有的经常使用到,有的用不上,当页面禁用样式后,它们的展现跟 div 是没撒差别,有同学可能会说,既然一样,又不影响页面的最终展现,不管是 article 还是 section 能用就好了。如果考虑实际项目针对用户,我也是这么认为的,但作为一个重构仔,我们需要让标签语义化,清晰的结构,更好的 seo,利于特殊终端的阅读(无障碍),此时 html5 标签的作用就很明显了,并不是说能用就好。于是复习下内容并记录在博客上,顺便分享给大家,也方便自己以后查找。
HTML5 新增结构元素分为主体结构元素和非主体结构元素
- 主体结构元素: article、section、nav、aside、time
- 非主体结构元素:header、hgroup、footer、address
一、主体结构元素
article
article 标签,从语义化上看为文档、页面,其用法如下:
- 通常是一篇文章、一个页面、一个独立完整的内容模块
- 一般会带个标题,并放在 header 标签中
- article 元素可以互相嵌套
使用频率极高,强调独立性,多注意下与 header 标签的使用。
<article>
<header>
<h1>是我标签</h1>
</header>
<p>我是段落</p>
<article>
<div>我的内容</div>
</article>
</article>
section
section 标签,从语义化上看为部分,其用法如下:
- 用于页面内容的独立分块,往往是文章的一段
- 通常由内容和标题组成,没有标题的内容不推荐使用 section
使用频率低,强调分段分块。
注:《HTML5与CSS3权威指南》这本书中说明:一个容器需要被定义样式或者脚本定义行为时,推荐用div而非section,不要将section用作设置样式的容器。
<section>
<h1>水果</h1>
<article>
<h2>苹果</h2>
<div>苹果是撒?</div>
</article>
<article>
<h2>桔子</h2>
<div>桔子是撒?</div>
</article>
</section>
<!-- article可以看成是一种特殊种类的section元素,它比section更强调独立性 -->
<article>
<h1>中国人物</h1>
<p>三国、两晋、南北朝</p>
<section>
<h2>三国</h3>
<p>猛将猛将猛将猛将</p>
</section>
<section>
<h2>两晋</h3>
<p>猛将猛将猛将猛将</p>
</section>
</article>
nav
nav 标签,从语义化上看为导航,其用法如下:
- 通常作为页面导航的链接组
- 侧边栏导航
使用频率高。
<nav>
<ul>
<li><a href="">菜单1</a></li>
<li><a href="">菜单2</a></li>
<li><a href="">菜单3</a></li>
</ul>
</nav>
aside
aside 标签,从语义化上看为在旁边、侧边,其用法如下:
- 在 article 标签中使用时,作为主要内容的附属信息部分,如有关的参考资料、名词解释等。
- 在 article 标签外使用时,作为页面或者站点全局的附属信息部分,如侧边栏、博客的友情链接部分、广告区域等。
使用频率低。
<!-- 在article标签外使用时 -->
<article>
<h1>马云是谁</h1>
<p>马云,男,1964年10月15日出生于浙江省杭州市,中国著名企业家,阿里巴巴集团、淘宝网、支付宝创始人..........</p>
<aside>
<h1>参考资料</h1>
<p>百度网、维基百科...</p>
</aside>
</article> <!-- 在article标签内使用时 -->
<aside>
<nav>
<ul>
<li><a href="">老赵的博客</a></li>
<li><a href="">鬼哥的博客</a></li>
<li><a href="">彪叔的博客</a></li>
</ul>
</nav>
</aside>
time
time 标签,从语义化上看为时间,其用法如下:
- 代表 24 小时中的某个时刻或某个日期
- 表示时刻时允许带时间差
- 可定义很多格式的日期和时间
使用频率低。
<time datetime="2013-3-6">2014年3月6日</time>
<!-- datetime 属性中日期与时间之间要用"T" 分隔,"T'表示时间 -->
<time datetime="2013-3-6T20:00">2014年3月6日20:00</time>
<!-- 时间加上"Z"表示给机器编码时使用 UTC 标准时间 -->
<time datetime="2013-3-6T20:00Z">2014年3月6日20:00</time>
二、非主体结构元素
header
header 标签,从语义化上看为文档的页眉,其用法如下:
- 一种具有引导和导航作用的结构元素
- 通常放置在整个页面或者页面内的一个内容区块的标题
- 一个网页内并没有限制 header 标签的个数
使用频率极高,比较容易理解。
<header>
<h1>我是大头</h1>
</header>
<article>
<header>
<h1>我是脖子</h1>
</header>
<p>我是身体</p>
</article>
hgroup
hgroup 标签,从语义化上看为标题组,其用法如下:
- 作为 header 标签的子元素
- 一个内容模块中包括了主标题和至少一个子标题才使用 hgroup
- 通常会将 h1~h6 元素进行分组
使用频率高。
<article>
<header>
<hgrounp>
<h1>我是刘备</h1>
<h2>我是关羽</h2>
<h3>我是张飞</h3>
</hgrounp>
</header>
<p>吕布惊呆了</p>
</article>
footer
footer 标签,从语义化上看为文档的脚注,其用法如下:
- 一个内容块区的脚注
- 通常内容为联系信息、相关阅读、版权信息等
使用频率高,比较容易理解。
<article>
<p>吕布惊呆了</p>
<footer>
<ul>
<li>关于三国</li>
<li>地图信息</li>
<li>游戏攻略</li>
</ul>
</footer>
</article>
address
address 标签,从语义化上看为地址,其用法如下:
- 用于文档中呈现的联系信息
- 通常内容为作者、网站链接、电子邮箱、地址、电话号码等
使用频率低。
<address>
<a href="">作者:张三丰</a>
<a href="">地址:武当山</a>
<a href="">联系方式:1247</a>
</address>
感谢webapp群的猎巫同学提醒,这个属性其实HTML 4.01就已经有了,这里修正下。
希望本文对大家在 html5 结构标签上的运用有一定的指导,如果发现内容有错误的地方,欢迎大家指正~
参考资料《HTML5与CSS3权威指南》
【原】HTML5 新增的结构元素——能用并不代表对了的更多相关文章
- HTML5新增的结构元素
HTML5的结构 一:新增的主体结构元素 在HTML5中,为了使文档的结构更加清晰明确,追加了几个与页眉,页脚内容区块等文档结构相关联的结构元素. 1.1article元素 article元素代表文档 ...
- HTML5新增与结构有关的元素
HTML5新增与结构有关的元素 1.section元素 2.article元素 3.aside元素 4.header元素 5.hgroup元素 6.footer元素 7.nav元素 8.figure元 ...
- html5--select与HTML5新增的datalist元素
html5--select与HTML5新增的datalist元素 学习要点 掌握select元素与datalist元素的使用 select元素 用来建立一个下拉菜单选项列表 不仅可以在表单中使用,还可 ...
- 疯狂的表单-html5新增表单元素和属性
疯狂的表单 2015/11/27 16:44:07 从三方面来介绍html5表单的新特性 表单结构更灵活 要提交数据的控件可以布局在form标签之外,看下面的代码,表单元素可以写到form元素之外,只 ...
- 读书笔记:《HTML5开发手册》--HTML5新的结构元素
读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在 ...
- 如何让老式浏览器支持html5新增的语义元素
html5新增加了一些语义元素,如header, footer, nav, aritcle, aside,等等. 然而,有些老款浏览器无法识别这些元素,会把它们当成 inline 元素对待,这会导致一 ...
- 第一章 用HTML5中的结构元素构建网站
1.当一个容器需要直接定义样式或通过脚本定义行为时,推荐使用div元素而非section元素. 2.section是需要标题的,而nav或aside没有标题也是可以的. 3.html5轮廓工具 htt ...
- IT兄弟连 HTML5教程 HTML5表单 HTML5新增表单元素
HTML5有一些新的表单元素:<datalist>.<keygen>.<output>.不是所有的浏览器都支持HTML5新的表单元素,但即使浏览器不支持该表单属性, ...
- html5新增的主体结构元素
1. article 主体结构元素 通常是一篇文章.一个页面.一个独立完整的内容模块一般会带个标题,并放在 header 标签中,article 元素可以互相嵌套,使用频率极高,强调独立性,多注意下 ...
随机推荐
- NHibernate生成实体类、xml映射文件
最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为 ...
- webServices与Web服务
本篇的内容在MSND中标注已是一项旧技术,而取而代之的是WCF, 那么我也放弃吧!但是这个属于Web服务的范畴,而WCF本质上也是一个Web服务来的,所以对于基础的东西还是不变的.那么这次就着重看看这 ...
- android.view.InflateException: Binary XML file line #34: Error inflating class
问题一般出在xml的第三方View的全类名,你可能是直接粘贴过来的,没有改成自己项目的全类名.
- php实现设计模式之 工厂方法模式
<?php /* * *工厂方法模式,创建型模式 定义一个用于创建对象的工厂接口,让子类决定实例化哪一个类.Factory Method使用一个类的实例化延迟到其子类 * * 四个角色: * 工 ...
- git的诞生
Git的诞生 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世 ...
- JS效果集锦
秒后消失 $('.success_message').text( '反馈成功' ); setTimeout(function(){ $( ".success_messa ...
- OData V4 系列 查询操作
OData 学习目录 对OData的操作,主要是查询,下面把相关的查询情况列出来,供参考学习,每个操作都有对应的截图,便于理解 默认查询 $expand 查询导航属性关系 ,查询Product相关的 ...
- TouchPoint.js – 可视化展示 HTML 原型点击效果
TouchPoint.js 是一个用于 HTML 原型展示的 JavaScript 库(作为UX过程的一部分),通过视觉表现用户在屏幕上的点击.TouchPoint 是高度可定制,非常适合屏幕录制,用 ...
- 使用eclipse作为python开发工具安装旧版pydev
在Eclipse中: Help->Install New Software add之后输入的链接地址 https://dl.bintray.com/fabioz/pydev/old/ 如果使用从 ...
- [python]数据整理,将取得的众多的沪深龙虎榜数据整一整
将昨日取得的众多的沪深龙虎榜数据整一整 提取文件夹内所有抓取下来的沪深龙虎榜数据,整理出沪深两市(含中小创)涨幅榜股票及前5大买入卖出资金净值,保存到csv文件 再手动使用数据透视表进行统计 原始数据 ...