开发学院

您的位置:首页>教程>正文

教程正文

HTML5 迁移

HTML5 迁移

    从 HTML4 迁移至 HTML5

    本章讲解如何从一张典型的 HTML4 页面迁移至典型的 HTML5。

    本章演示如何把一张已有的 HTML4 页面转换为 HTML5 页面,在不破坏如何原始内容和结构的情况下。

    注释:您可以使用相同的技巧从 HTML4 以及 XHTML 迁移至 HTML5。

    典型的 HTML4典型的 HTML5
    <div id="header"><header>
    <div id="menu"><nav>
    <div id="content"><section>
    <div id="post"><article>
    <div id="footer"><footer>

    典型的 HTML4 页面

    实例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>HTML4</title>
    <style>
      body {font-family:Verdana,sans-serif;font-size:0.8em;}
      div#header,div#footer,div#content,div#post 
      {border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;}
      div#header,div#footer {color:white;background-color:#444;margin-bottom:5px;}
      div#content {background-color:#ddd;}
      div#menu ul {margin:0;padding:0;}
      div#menu ul li {display:inline; margin:5px;}
    </style>
    </head>
    <body>
    
    <div id="header">
      <h1>Monday Times</h1>
    </div>
    
    <div id="menu">
      <ul>
        <li>News</li>
        <li>Sports</li>
        <li>Weather</li>
      </ul>
    </div>
    
    <div id="content">
    <h2>News Section</h2>
    
    <div id="post">
      <h2>News Article</h2>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
    </div>
    
    <div id="post">
      <h2>News Article</h2>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
    </div>
    
    </div>
    
    <div id="footer">
      <p>&copy; 2014 Monday Times. All rights reserved.</p>
    </div>
    
    </body>
    </html>

    更改为 HTML5 Doctype

    修改文档类型,从 HTML4 doctype:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">

    修改为 HTML5 doctype:

    <!DOCTYPE html>

    更改为 HTML5 编码

    修改编码信息,从 HTML4:

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

    改为 HTML5:

    <meta charset="utf-8">


    添加 shiv

    所有现代浏览器都支持 HTML5 语义元素。

    此外,您可以“教授”老式浏览器如何处理“未知元素”。

    为 Internet Explorer 支持而添加的 shiv:

    <!--[if lt IE 9]>
      <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->


    注释:请在 HTML5 浏览器支持中阅读更多有关 shiv 的知识。

    为 HTML5 语义元素添加 CSS

    请看已有的 CSS 样式:

    div#header,div#footer,div#content,div#post {
        border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;
    }
    div#header,div#footer {
        color:white;background-color:#444;margin-bottom:5px;
    }
    div#content {
        background-color:#ddd;
    }
    div#menu ul {
        margin:0;padding:0;
    }
    div#menu ul li {
        display:inline; margin:5px;
    }
    Duplicate with equal CSS styles for HTML5 semantic elements:
    
    header,footer,section,article {
        border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;
    }
    header,footer {
        color:white;background-color:#444;margin-bottom:5px;
    }
    section {
        background-color:#ddd;
    }
    nav ul  {
        margin:0;padding:0;
    }
    nav ul li {
        display:inline; margin:5px;
    }


    更改为 HTML5 <header> 和 <footer>

    把 id="header" 和 id="footer" 的 <div> 元素:

    <div id="header">
      <h1>Monday Times</h1>
    </div>
    .
    .
    .
    <div id="footer">
      <p>&copy; 2014 开发学院s. All rights reserved.</p>
    </div>

    修改为 HTML5 语义元素 <header> 和 <footer>:

    <header>
      <h1>Monday Times</h1>
    </header>
    .
    .
    .
    <footer>
      <p>&copy; 2014 开发学院s. All rights reserved.</p>
    </footer>


    更改为 HTML5 <nav>

    把 id="menu" 的 <div> 元素:

    <div id="menu">
      <ul>
        <li>News</li>
        <li>Sports</a></li>
        <li>Weather</li>
      </ul>
    </div>

    修改为 HTML5 语义元素 <nav>:

    <nav>
      <ul>
        <li>News</li>
        <li>Sports</a></li>
        <li>Weather</li>
      </ul>
    </nav>


    更改为 HTML5 <section>

    把 id="content" 的 the <div> 元素:

    <div id="content">
    .
    .
    .
    </div>

    修改为 HTML5 语义元素 <section>:

    <section>
    .
    .
    .
    </section>


    更改为 HTML5 <article>

    把 class="post" 的所有 <div> 元素:

    <div class="post">
      <h2>News Article</h2>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
    </div>

    修改为 HTML5 语义元素 <article>:

    <article>
      <h2>News Article</h2>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
    </article>


    删除这些“不再需要的”样式:

    div#header,div#footer,div#content,div#post {
        border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;
    }
    div#header,div#footer {
        color:white;background-color:#444;margin-bottom:5px;
    }
    div#content {
        background-color:#ddd;
    }
    div#menu ul {
        margin:0;padding:0;
    }
    div#menu ul li {
        display:inline; margin:5px;
    }


    典型的 HTML5 页面

    最后您可以删除 <head> 标签。HTML5 中不再需要它们:

    实例

    <!DOCTYPE html>
    <html lang="en">
    <title>HTML5</title>
    <meta charset="utf-8">
    
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js">
    </script>
    <![endif]-->
    
    <style>
    body {
        font-family:Verdana,sans-serif;font-size:0.8em;
    }
    header,footer,section,article {
        border:1px solid grey;
        margin:5px;margin-bottom:15px;padding:8px;
        background-color:white;
    }
    header,footer {
        color:white;background-color:#444;margin-bottom:5px;
    }
    section {
        background-color:#ddd;
    }
    nav ul {
        margin:0;padding:0;
    }
    nav ul li {
        display:inline; margin:5px;
    }
    </style>
    <body>
    
    <header>
      <h1>Monday Times</h1>
    </header>
    
    <nav>
      <ul>
        <li>News</li>
        <li>Sports</li>
        <li>Weather</li>
      </ul>
    </nav>
    
    <section>
    <h2>News Section</h2>
    
    <div id="post">
      <h2>News Article</h2>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
    </div>
    
    <div id="post">
    <h2>News Article</h2>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
      <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum 
      lurum hurum turum.</p>
    </div>
    
    </section>
    
    <footer>
      <p>&copy; 2014 Monday Times. All rights reserved.</p>
    </footer>
    
    </body>
    </html>


    <article> <section> 与 <div> 之间的差异

    在 HTML5 标准中,<article> <section> 与 <div> 之间的差异很小,令人困惑。

    在 HTML5 标准中,<section> 元素被定位为相关元素的块。

    <article> 元素被定义为相关元素的完整的自包含块。

    <div> 元素被定义为子元素的块。

    如何理解呢?

    在上面的例子中,我们曾使用  <section> 作为相关 <articles> 的容器。

    但是,我们也能够把 <article> 用作文章的容器。

    下面是一些不同的例子:

    <article> 中的 <article>:
    
    <article>
    
    <h2>Famous Cities</h2>
    
    <article>
    <h2>London</h2>
    <p>London is the capital city of England. It is the most populous city in the United Kingdom,
    with a metropolitan area of over 13 million inhabitants.</p>
    </article>
    
    <article>
    <h2>Paris</h2>
    <p>Paris is the capital and most populous city of France.</p>
    </article>
    
    <article>
    <h2>Tokyo</h2>
    <p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,
    and the most populous metropolitan area in the world.</p>
    </article>
    
    </article>


    <article> 中的 <div>:
    
    <article>
    
    <h2>Famous Cities</h2>
    
    <div class="city">
    <h2>London</h2>
    <p>London is the capital city of England. It is the most populous city in the United Kingdom,
    with a metropolitan area of over 13 million inhabitants.</p>
    </div>
    
    <div class="city">
    <h2>Paris</h2>
    <p>Paris is the capital and most populous city of France.</p>
    </div>
    
    <div class="city">
    <h2>Tokyo</h2>
    <p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,
    and the most populous metropolitan area in the world.</p>
    </div>
    
    </article>


    <article> 中的 <section> 中的 <div>:
    
    <article>
    
    <section>
    <h2>Famous Cities</h2>
    
    <div class="city">
    <h2>London</h2>
    <p>London is the capital city of England. It is the most populous city in the United Kingdom,
    with a metropolitan area of over 13 million inhabitants.</p>
    </div>
    
    <div class="city">
    <h2>Paris</h2>
    <p>Paris is the capital and most populous city of France.</p>
    </div>
    
    <div class="city">
    <h2>Tokyo</h2>
    <p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,
    and the most populous metropolitan area in the world.</p>
    </div>
    </section>
    
    <section>
    <h2>Famous Countries</h2>
    
    <div class="country">
    <h2>England</h2>
    <p>London is the capital city of England. It is the most populous city in the United Kingdom,
    with a metropolitan area of over 13 million inhabitants.</p>
    </div>
    
    <div class="country">
    <h2>France</h2>
    <p>Paris is the capital and most populous city of France.</p>
    </div>
    
    <div class="country">
    <h2>Japan</h2>
    <p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,
    and the most populous metropolitan area in the world.</p>
    </div>
    </section>
    
    </article>