HTML5中新的结构元素

1、 HTML5初始文件

1.1、doctype

在之前,doctype的声明是这样的:

"http://www.w3. org/TR/html4/strict.dtd">

doctype称作文档类型声明(Document Type Definition),它总是作为HTML文件的第一行。doctype是WEB标准要求的一部分,用来告诉浏览器如何处理文档,这也是将其放在HTML文件第一行的原因所在。

如果不写doctype,浏览器就进入怪异模式(quirks mode),那么你编写的代码在某些浏览器下无法正常运行。

现在,HTML5提供了一个更简洁的标准文档声明:

<!DOCTYPE html>

1.2、字符编码

在head标记中的第一行需要包含的是charset(字符集)声明,它告诉浏览器应该如何解析这个文件。

在HTML4中,声明字符集需要这样做:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

现在,在HTML中,只需声明charset即可:

<meta charset="utf-8">

和doctype声明一样简洁!

1.3、JavaScript 与 css 链接

HTML5有助于降低页面中的大量标记(markup),还可以简化JavaScript与css的调用。

在HTML4中,script与link元素需要使用type属性:

<script type="text/javascript" src="xx.js"></script>
<link rel="stylesheet" type="text/css" href="xx.css" />

在HTML5中,简化如下:

<script src="xx.js"></script>
<link rel="stylesheet" href="xx.css" />

在HTML5中,浏览器已经假设script是JavaScript文件,link是css文件了,所以,不写type属性也没问题。

1.4、语法编写风格

在HTML5中,可以使用多种编码风格:

可以全部大写:

<SCRIPT SRC="XX.JS"></SCRIPT>

可以全部小写:

<script src="xx.js"></script>

可以不用引号

<script src=xx.js></script>

也可以混合使用

<SCRIPT src=xx.js></script>

      虽然这些都可以使用,但是强烈建议使用前后一致的编码规范。这样不仅对你有帮助,而且对打算使用你代码的人来说,也大有益处。我们都曾用过XHTML,应该做到闭合所有标记、使用小写字母、对于属性要用引号括起来。

一个完成的HTML5初始页面结构为:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <!--新HTML元素区域-->
  </body>
</html>

将页面保存为.html(或.htm)文件。

1.5、HTML5验证

验证是一个很有用的工具,它可以检查事情可能出错的原因,在开发过程中是很重要的一个步骤。可以参考如下网站来验证你的页面与HTML5的一致性:

2、HTML5新元素

header、hgroup、nav、footer、article、section、aside,这些新的结构元素是为了告诉浏览器,页面具有什么样的结构,以及内容具有什么样的语义,这些名字从何而来呢?

2005年,Google分析了10亿多个Web页面,并找到了开发人员和web作者常用的类名。这也使Ian Hickson ——HTML5主规范的编辑——开始考虑这些新的元素。

以下是当时最流行的20个类名:

footer menu title small text content header nav copyright button main search msonormal date smalltext body style1 top white link

有些类名供显示使用(比如white、style1、msonormal),而其他类名则构成了HTML5规范中的元素(footer、nav、header)。

为什么要使用这些新的元素呢?HTML5让你可以为自己的内容提供语义。

2.1 header

header元素经常出现在Web页面的最上端。经常包含logo、网站名称、网站导航等信息,它可以在一个页面中多次使用。

<header>
    <img alt="my site logo" src="logo.png" />
    <h1><a href="#">Index</a></h1>
</header>

HTML5规范提到,header元素可以包含导航。每个网页没有限制只能使用一个header元素,也没有要求header必须在页面最顶部。

<article>
    <header>
        <h1>Chapter 1</h1>
        <p>11.1</p>
    </header>
    <p>some words</p>
</article>
<article>
    <header>
        <h1>Chapter 1</h1>
        <p>11.1</p>
    </header>
    <p>some words</p>
</article>

如果header中只有一个标题(h1-6),就没有必要使用header了,直接使用h1-6就足够了。

2.2 hgroup

该标签在HTML5.1中已经废弃。

2.3 nav

顾名思义,nav元素的作用就是提供导航。它用于链接到网站内的其他页面,或者是链接到一个页面的其他部分。

很多情况下,开发者都使用无序列表编写导航:

<ul id="nav">
    <li><a href="#">Index</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">News</a></li>
</ul>

在HTML5中,创建nav元素时,没有太大改变:

<nav>
    <ul id="nav">
        <li><a href="#">Index</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">News</a></li>
    </ul>
</nav>

也可以把nav元素放到header中,原因是header元素允许出现介绍性内容和导航内容。

<header>
    <h1>Title</h1>
    <nav>
        <li>Index</li>
    </nav>
</header>

使用nav元素可以有效提升可访问性。屏幕阅读器之类的辅助技术能够搜索并立即使用这些导航组,而不需要等待页面全部加载完毕。

2.4 article

article元素是一个独立的内容块,它可以独立存在,也可以被重用。RSS订阅的内容就非常具有代表性。
HTML5规范给出了一些如何使用article元素的示例:论坛的帖子,杂志或新闻的文章、一篇博文或用户提交的评论。

<article>
    <header>
        <h1>新年大事记</h1>
        <p>12.01.01</p>
    </header>
    <p>一个段落</p>
    <p>一个段落</p>
</article>

HTML5规范讲到,article代表“内容独立的某个部分”,甚至博客评论内容也可以用它来表示。

2.5 section 对内容分组

section元素是一个总是需要标题的内容区域或页面区域。可以用它将多个部分的内容组合在一起,也可以根据需要,将内容的某一个部分进一步划分。

它不可用作通用封装器来实现样式上的需求

section元素可以包含article,并且article元素也可以继续将内容分割成几个section。

<h1>News</h1>
    <section>
        <h1>运动新闻</h1>
        <p>小标题</p>
    <section>
    <section>
        <h1>财经新闻</h1>
        <p>小标题</p>
    <section>
        <section>
        <h1>娱乐新闻</h1>
        <p>小标题</p>
    <section>
</h1>

article与section的选择

目前来看,section与div的使用方式很像,但是与div不一样的是,section具有语义,它是一组相关内容的组合。

section中可以包含article,就像新闻页面,有一个新闻版块,在该版块中又有不同类别的新闻。

如果你认为这部分内容具有独立的意义,那么就应当使用article标记。

HTML5规范中讲到:强烈建议开发人员将div元素视为最后求助的元素,也就是说在没有其他元素合适的情况下才求助于它。
div元素并不承载任何特殊的语义。如果使用了section,它会添加到文档大纲中,表明是重要的,相反,div不能添加到大纲中,如果section只用来设置样式,则最好使用div。

2.6 aside

aside标记表示跟周围内容紧密关联的一组内容,比如热门文章列表、博文分类、最近评论。这种内容与主页内容相关,但由于它相独立存在。

要想正确使用aside,取决于它的位置。

      • 放到article中,aside的内容必须与article内容紧密关联,比如词汇表
      • 放到article或section外,则它的内容应该与整个页面相关的,比如相关链接、广告等

<aside>
    <h2>相关链接</h2>
    <nav>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </nav>
</aside>

2.7 footer

顾名思义,footer元素常位于页面的底部。但也并非如此,footer元素旨在包含作者、网站所有者、版权数据、网站规章制度等信息。如果它位于section或article中,则包含文章发布的日期、标记、分类和其他元数据。

<footer>
    <small>&copy; Copyright 2016-2017</small>
<footer>

HTML5规范中讲到,footer元素可以包含指向相关文档的链接,也可以包含其他链接,比如“上一篇文章”、“下一篇文章”链接等。

2.8 使用HTML5大纲工具验证结构

工具:https://gsnedders.html5.org/outliner/

HTML5中新的结构元素的更多相关文章

  1. HTML5的新的结构元素介绍

    HTML5的新的结构元素介绍 一.HTML5与HTML4的区别 1. 取消了一些过时的HTML4的标签 其中包括纯粹显示效果的标记,如<font>和<center>,它们已经被 ...

  2. 读书笔记:《HTML5开发手册》--HTML5新的结构元素

    读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在 ...

  3. html5中的网页结构

    一.html5中的大纲 在html5中,使用各种结构元素所描述出来的整个网页的层次结构,就是该网页的大纲.因此在组织这份大纲的时候,不能使用div元素,因为div元素只能当做容器,用在需要对网页中某个 ...

  4. HTML5中新添加事件

    HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...

  5. html5新增的主题结构元素

    article元素 article元素代表文档.页面或应用程序中独立的.完整的.可以独自被外部引用的内容. 它可以是一篇博客或者报刊中的文章,一篇论坛帖子.一段用户评论或独立的插件. 或其他任何独立的 ...

  6. html5中不再支持的元素

    html5中不再支持的元素:1.acronym(建议abbr) : 定义首字母缩写2.applet(建议object): 定义 applet3.basefont(使用css控制)4.big(使用css ...

  7. HTML5中已经不支持元素汇总,持续更新

    HTML5中已经不支持以下的元素,不建议在进行开发时再使用以下的元素. 1.acronym(建议abbr) : 定义首字母缩写 2.applet(建议object):  定义 applet 3.bas ...

  8. html5中新增非主体结构元素

    1.header元素 定义HTML文档的页眉,是一种具有引导和导航作用的结构元素 <header> <h1>header元素</h1> <nav> &l ...

  9. 第87天:HTML5中新选择器querySelector的使用

    一.HTML5新选择器 1.document.querySelector("selector");selector:根据CSS选择器返回第一个匹配到的元素,如果没有匹配到,则返回n ...

随机推荐

  1. 总结-css编码规范

    一.注释 统一采用 :/* 注释内容 */ 二.命名 1.常用命名(多查单词) 参考命名规范.doc 2.选择器 1> [建议] 选择器的嵌套层级应不大于 3 级,位置靠后的限定条件应尽可能精确 ...

  2. ubuntu更新命令点点滴滴

    ubuntu更新命令点点滴滴      一些非root的更新命令:              sudo: sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一 ...

  3. HDU 2824 简单欧拉函数

    1.HDU 2824   The Euler function 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=2824 3.总结:欧拉函数 题意:求(a ...

  4. .net使用FluentValidation进行服务端验证。

          背景 最近使用asp.mvc 做一个在线口语系统项目,在服务端验证问题遇到了一些小问题. 自己根据数据库表user定义一个数据库表实体对象UserDbEntity [Table(" ...

  5. SQLite开发工具

    Sqlite 管理工具 SQLiteDeveloper及破解 功能特点 表结构设计,数据维护,ddl生成,加密数据库支持,sqlite2,3支持 唯一缺憾,收费,有试用期 下载地址: http://w ...

  6. ecshop 模板与库文件lbi

    转: 管理中心的"设置模板"其实就是把特定的[库项目]添加到模板中的[可编辑区域],或从[可编辑区域]中删除/修改某些[库项目],后台的"设置模板"只能对添加特 ...

  7. WITH (NOLOCK)浅析

    SQL Server 中WITH (NOLOCK)浅析 2014-08-30 11:58 by 潇湘隐者, 503 阅读, 2 评论, 收藏, 编辑 概念介绍 开发人员喜欢在SQL脚本中使用WITH( ...

  8. JS完成页面跳转并传参的方法|附加:循环遍历对象

    此方法只能传递较少参数 方法如下: <a href='page/index.html'>跳转</a> 以上是正常写法,如果要传参按一下写法: <!--参数写在?后面,多个 ...

  9. 将node.js程序作为服务,并在windows下开机自动启动(使用forever)

    手上项目中有一块服务是用node.js实现的,运行环境是windows server 2008 R2,刚开始着手实现这块功能的时候时间很紧迫,随便写了个console程序就部署上去了--启动方式就是在 ...

  10. dfs 与 dijkstra 总结

    Dijkstra: //寻求加权图起始点到各个节点的最短路径 for i <- 1:n do distance[i] <- INF; distance[0] <- 0;//起始节点距 ...