使用 HTML5 中的新标签和新属性

新标签主要分成三个部分:语义化标签、功能性标签及新的输入控件类型

语义化标签

<article>、<aside>、<figcaption>、<figure>、<footer>、<header>、<hgroup>、<nav>、<section>、<details>、<summary>

这些新的语义化标签目前得到了大部分主流浏览器的支持,建议直接使用;如果是在IE 8及以下版本,无法识别这些标签,可通过一些技术手段和第三方js库支持。

功能性标签

<svg>、<canvas>、<audio>、<video> 等

这些标签的使用代替了原来需要使用第三方插件才能实现的效果,目前,这些功能性标签或多或少存在一些浏览器兼容问题或是性能问题,在使用过程中需要谨慎,尽量在多个浏览器中多做功能和性能测试。

表单输入类型

tel、search、url、date、email、number、range、color 等

在不支持的浏览器中,这些新表单输入控件会平稳降级为普通的ext类型输入控件。推荐在项目中直接使用这些新的输入控件类型。

新标签解释


<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>三国</h2>
        <p>猛将猛将猛将猛将</p>
    </section>
    <section>
        <h2>两晋</h2>
        <p>猛将猛将猛将猛将</p>
    </section>
</article>
  • 用于页面内容的独立分块,往往是文章的一段
  • 通常由内容和标题组成,没有标题的内容不推荐使用 section
  • 一个容器需要被定义样式或者脚本定义行为时,推荐用div而非section,不要将section用作设置样式的容器

<article> 标签标记定义一篇文章 (article可以看成是一种特殊种类的section元素,它比section更强调独立性)从语义化上看为文档、页面

<article>
    <header>
        <h1>是我标签</h1>
    </header>
    <p>我是段落</p>
    <article>
        <div>我的内容</div>
    </article>
</article>
  • 通常是一篇文章、一个页面、一个独立完整的内容模块
  • 一般会带个标题,并放在 header 标签中
  • article 元素可以互相嵌套

<header> 标签定义 section 或 document 的页眉

<header>
    <hgroup>
        <h1>网站标题</h1>
        <h2>网站副标题</h2>
    </hgroup>
</header>
  • 通常包含 h1-h6 元素 或 hgroup
  • 作为整个页面或者一个内容块的标题;也可以包裹一节的目录部分,一个搜索框,一个nav,或者任何相关logo
  • 整个页面没有限制,header元素的个数,可以拥有多个,可以为每个内容块增加一个header元素
  • 如果 hgroup 或 h1-h6 自己就能工作的很好,那就不要用header

<hgroup> 标签用于对网页或区段(section)的标题进行组合,当元素有多个层级时,该元素可以将h1-h6元素放在其内,譬如文章的主标题和副标题的组合

  • 这个标签在最新的 HTML5.1 版中被废除?
<hgroup> 
    <h1>主标题</h1> 
    <h2>副标题</h2> 
</hgroup>
  • 如果只需要一个h1-h6标签就不用hgroup
  • 如果有连续多个h1-h6标签就用hgroup
  • 如果有连续多个标题和其他文章数据,h1-h6标签就用hgroup包住,和其他文章元数据一起放入header标签

<figure> 标签用于对元素进行组合。使用 <figcaption> 元素为元素组添加标题,标签规定独立的流内容(图像、图表、照片、代码等等)

<figure>
    <figcaption>PRC</figcaption>
    <p>The People's Republic of China was born in 1949...</p>
    [站外图片上传中……(1)]
</figure>
  • figure元素的内容应该与主内容相关,但如果被删除,则不应对文档流产生影响
  • figure用来代替原来li标签,figcaption用来替代p标签

<figcaption> 标签定义 figure 元素的标题

<figure>
    <figcaption>PRC</figcaption>
</figure>
  • figcaption 元素应该被置于 figure 元素的第一个或最后一个子元素的位置

<nav> 标签代表页面的导航链接区域,用于定义页面的主要导航部分

<nav>
    <ul>
        <li>HTML5</li>
        <li>CSS3</li>
        <li>JavaScript</li>
    </ul>
</nav>
  • 应用位置譬如:侧边栏上目录,面包屑导航,搜索样式,或者下一篇上一篇文章,但是事实上规范上nav只能用在页面主要导航部分上
  • 页脚区域中的链接列表,虽然指向不同网站的不同区域,譬如服务条款,版权页等,这些footer元素就能够用了

<aside> 标签被包含在article元素中作为主要内容的附属信息部分,其中的内容可以是与当前文章有 关的相关资料、标签、名词解释等

<article>
    <p>内容</p>
<aside>
  • 在article元素之外使用作为页面或站点全局的附属信息部分
  • 最典型的是侧边栏,其中的内容可以是日志串连,其他组的导航,甚至广告,这些内容相关的页面

<footer> 标签定义 section 或 document 的页脚

<footer>
    &copy; 2016
</footer>
  • 通常含有该节的一些基本信息,譬如:作者,相关文档链接,版权资料
  • 如果footer元素包含了整个节,那么它们就代表附录,索引,提拔,许可协议,标签,类别等一些其他类似信息
  • 可以是 "网页" 或任意 "section" 的底部部分
  • 没有个数限制,除了包裹的内容不一样,其他跟header类似

语义化结构


以前的div写法

<body>
    <div id="header"></div>
    <div id="navigation"></div>
    <div id="main"></div>
    <div id="sidebar"></div>
    <div id="footer"></div>
</body>

html5 推荐写法

<body>
    <header id="header"></header>
    <nav id="navigation"></nav>
    <section id="main"></section>
    <aside id="sidebar"></aside>
    <footer id="footer"></footer>
</body>

HTML5中新增的标签属性


<script> 标签中的 async 属性

<!-- HTML 4.01 规范中定义了 defer 属性 -->
<script src="file.js" defer="defer"></script>
<!-- HTML5 规范中定义了 async 属性 -->
<script src="file.js" defer="async"></script>

<base> 标签中的 target 属性

<head>
    <!-- 属性 target 设置为 _blank,默认所有超链接新窗口打开 -->
    <base target="_blank">
</head>

<input> 和 <textarea> 中的 placeholder、required 及 autofocus 属性

输入控件上的这几个属性是非常有用的,增强了用户体验

标签上的自定义属性 data-*

<div id="data" data-msg="hello..."></div>

# 对应的读取和设置数据的方式如下:

var data = document.getElementById('data');
//获取数据
data.dataset['msg'];
//设置数据
data.dataset['msg'] = 'World';

# 另外一种情况

<div id="data" data-last-value="56"></div>
//这类读写属性方式采用 Pascal写法:首字母小写,以-后的大写开头
data.dataset['lastValue'] = '88';

# 此API已经得到了大部分主流浏览器的支持,但 IE7 及以下浏览器并不支持,可使用jquery的data('value')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容

  • HTML 5的革新之一:语义化标签一节元素标签。 在HTML 5出来之前,我们用div来表示页面章节,但是这些di...
    吴越公子阅读 753评论 0 0
  • 首先是关于语义(Semantics)和默认样式的区别,默认样式是浏览器设定的一些常用tag的表现形式,语义化的主要...
    DecadeHeart阅读 3,408评论 0 3
  • 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义。(即使我们用css样式的id和c...
    浪漫歌阅读 374评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,709评论 1 92
  • 我们是水中的蜉蝣生物 介于光明与黑暗中
    北屿情殇阅读 146评论 0 0