HTML5新元素

HTML新元素

HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单。

本次学习HTML5的新标签元素有:

<header>定义页面或区段的头部;

<footer>定义页面或区段的尾部;

<nav>定义页面或区段的导航区域;

<section>页面的逻辑区域或内容组合;

<article>定义正文或一篇完整的内容;

<aside>定义补充或相关内容;

学习这些标签最好的方法当然就是试着使用它们。虽然现在有很多现成的网页布局的模板可以方便的拿来用,但是对于初学者来说,自己实现简单的页面布局绝对是有必要的。这里通过一个简单的页面布局的例子,来展示上述标签的使用方法。

示例:模仿博客首页布局

实现如图2-1的网页结构,这是一个非常典型的博客页面:头部、尾部、水平导航栏、侧边栏导航以及内容。


图2-1

在图2-1中已经看到,相应标签实现的区域用名称标注了出来,比如头部Header

在编写页面前,有必要说一下:页面元素由HTML5实现,而元素的显示效果是CSS3渲染的,CSS3的代码可以和HTML5的代码放在同一个文件,也可以是独立的文件,只要在HTML5文件里引用即可。建议最好各自是独立的文件,这样的好处有:

1)符合单一职责原则:HTML5页面就负责管理元素,而CSS3文件只负责对相应HTML5文件显示效果的渲染,相互独立,互不相交。
2)降低页面的复杂度,便于维护:试想,当页面的元素数量增到很多的时候,同时在一个页面里管理元素和元素的显示属性,可读性是该有多差,后期的维护会很蛋疼。
3)加快浏览器的加载速度:第2)点的另外一个好处,简单的页面自然加载更快。
当然,如果就是习惯HTML5+CSS3放在一个文件里,也未尝不可,这里也只是建议。
下面来具体实现图2-1。

1.HTML5的文档声明
新建index.html文件,如果用的网页编写工具已经支持HTML5文件类型,那么,应该生成如下的HTML5模板:

<!DOCTYPE html>
  <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>Layout TEST</title>
 </head>
  <body>
 </body>
 </html>

如果网页编写工具暂时不支持HTML5也没关系,自己写这几行代码也很简单。
说明:第一行:<!DOCTYPE html>是HTML5对文档类型的简化,化繁为简;(文档类型的作用:验证器依据它来判断该采用何种规则去验证代码;强制浏览器以标准模式渲染页面)
2.头部
<header>标签实现
<header id="page_header">
    <h1>Header</h1>
</header>
 
说明:1)header不能喝h1,h2,h3这些标题混为一谈。<header>可以包含从公司logo到搜索框在内的各式各样的内容。例子中只含有标题。
2)同一个页面可以包含多个<header>元素。每个独立的区块或文章都可以含有自己的<header>.所以示例中为<header>添加唯一标示id属性,便于CSS3中灵活的渲染。在CSS文件里会看到id标示的作用。
3.尾部
<footer>标签实现

<footer id="page_footer">
    <h2>Footer</h2>
</footer>

说明:位置是页面或者区块的尾部,用法和<header>基本一样,也会包含其他元素,这里也指定了id.
4.导航
<nav>标签实现

<nav>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">One</a></li>
        <li><a href="#">Two</a></li>
        <li><a href="#">Three</a></li>
    </ul>
</nav>

 
说明:导航的重要性对于一个网页至关重要,快速方便的导航是留住访客所必须的。
1)可以被包含在<header>或<footer>或者其他区块中,一个页面可以有多个导航。
2)导航一般需要CSS来渲染,随后将会看到CSS的渲染。
5.区块和文章
<section>和<article>标签实现

<section id="posts">
        /*可以包含多个< article>*/
    <article>
         /*article的内容*/
        </article>
        <article>
         /*article的内容*/
        </article>
</section>

 
<section>元素将页面的内容合理归类,合理布局。
下面是<article>的一般内容

<article>
        <header>
            <h2>Article Header</h2>
        </header>
        <p>Without you?I'd be a soul without a purpose.
                </p>
        <footer>
            <h2>Article Footer</h2>
        </footer>
</article>

可以看到它可以包含很多元素。
6.旁白和侧边栏
<aside>标签实现旁白,侧边栏则由<section>实现。
<aside>是为主内容添的附加信息,入引言,图片等

<aside>
    <p>sth. in aside
    </p>
</aside>

<aside>一般加在<article>中使用

<article>
        <header>
            <h2>Article Header</h2>
        </header>
        <aside>
            <p>sth. in aside
            </p>
        </aside>
        <p>Without you?I'd be a soul without a purpose.
                </p>
        <footer>
            <h2>Article Footer</h2>
        </footer>
</article>

 
侧边栏,不是旁白!看做是右面的一个区域,包含链接,用<section>和<nav>实现即可。

<section id="sidebar">
    <nav>
    <ul>
          <li><a href="2012/04">April 2012</a></li>
          <li><a href="2012/03">March 2012</a></li>
          <li><a href="2012/02">February 2012</a></li>
          <li><a href="2012/01">January 2012</a></li>
    </ul>
    </nav>
</section>

到这里,每种标签的使用就是这样了,下面是HTML5的完整代码index.html文件
  View Code

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="style.css" type="text/css">
<title>Layout TEST</title>
</head>
<body>
    <h2>body</h2>
    <header id="page_header">
        <h1>Header</h1>
        <nav>
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">One</a></li>
                <li><a href="#">Two</a></li>
                <li><a href="#">Three</a></li>
            </ul>
        </nav>
    </header>
    <section id="posts">
        <h2>Section</h2>
        <article>
            <h2>article</h2>
            <header>
                <h2>Article Header</h2>
            </header>
            <aside>
                <h2>Article Aside</h2>
            </aside>
            <p>Without you?I'd be a soul without a purpose.
                        </p>
            <footer>
                <h2>Article Footer</h2>
            </footer>
        </article>
        <article>
            <h2>article</h2>
            <header>
                <h2>Article Header</h2>
            </header>
            <aside>
                <h2>Article Aside</h2>
            </aside>
            <p>Without you?I'd be a soul without a purpose. </p>
            <footer>
                <h2>Article Footer</h2>
            </footer>
        </article>
    </section>
    <section id="sidebar">
        <h2>Section</h2>
        <header>
            <h2>Sidebar Header</h2>
        </header>
        <nav>
            <h3></h3>
            <ul>
                <li><a href="2012/04">April 2012</a></li>
                <li><a href="2012/03">March 2012</a></li>
                <li><a href="2012/02">February 2012</a></li>
                <li><a href="2012/01">January 2012</a></li>
            </ul>
        </nav>
    </section>
 
    <footer id="page_footer">
        <h2>Footer</h2>
    </footer>
 
</body>
</html>

接下来详细介绍下新增的元素

<canvas> 新元素


<canvas>     标签定义图形,比如图表和其他图像。该标签基于 JavaScript 的绘图 API  

<!DOCTYPE html> 
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
</head> 
<body>
<canvas id="myCanvas">你的浏览器不支持 HTML5 canvas 标签。</canvas>
<script>
var c=document.getElementById('myCanvas');
var ctx=c.getContext('2d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>
</body>
</html>

新多媒体元素


标签              描述


<audio>       定义音频内容    

<video>       定义视频(video 或者 movie)    

<source>     定义多媒体资源 <video> 和 <audio>    

<embed>     定义嵌入的内容,比如插件。    

<track>        为诸如 <video> 和 <audio> 元素之类的媒介规定外部文本轨道。    

新表单元素


标签              描述


<datalist>    定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。    

<keygen>    规定用于表单的密钥对生成器字段。    

<output>    定义不同类型的输出,比如脚本的输出。    

新的语义和结构元素

HTML5提供了新的元素来创建更好的页面结构:


标签             描述


<article>    定义页面独立的内容区域。    

<aside>    定义页面的侧边栏内容。    

<bdi>    允许您设置一段文本,使其脱离其父元素的文本方向设置。    

<command>    定义命令按钮,比如单选按钮、复选框或按钮    

<details>    用于描述文档或文档某个部分的细节    

<dialog>    定义对话框,比如提示框    

<summary>    标签包含 details 元素的标题    

<figure>    规定独立的流内容(图像、图表、照片、代码等等)。    

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

<footer>    定义 section 或 document 的页脚。    

<header>    定义了文档的头部区域    

<mark>    定义带有记号的文本。    

<meter>    定义度量衡。仅用于已知最大和最小值的度量。    

<nav>    定义导航链接的部分。    

<progress>    定义任何类型的任务的进度。    

<ruby>    定义 ruby 注释(中文注音或字符)。    

<rt>    定义字符(中文注音或字符)的解释或发音。    

<rp>    在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。    

<section>    定义文档中的节(section、区段)。    

<time>    定义日期或时间。    

<wbr>    规定在文本中的何处适合添加换行符。    

已移除的元素

以下的 HTML 4.01 元素在HTML5中已经被删除:

<acronym>

<applet>

<basefont>

<big>

<center>

<dir>

<font>

<frame>

<frameset>

<noframes>

<strike>

<tt>


继续学习
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <canvas id="myCanvas">你的浏览器不支持 HTML5 canvas 标签。</canvas> <script> var c=document.getElementById('myCanvas'); var ctx=c.getContext('2d'); ctx.fillStyle='#FF0000'; ctx.fillRect(0,0,80,100); </script> </body> </html>
提交重置代码