HTML5 浏览器支持

您可以帮助老版本浏览器处理 HTML5。

HTML5 浏览器支持

所有现代浏览器都支持 HTML5。

此外,所有浏览器,不论新旧,都会自动把未识别元素当做行内元素来处理。

正因如此,您可以帮助老式浏览器处理”未知的“ HTML 元素。

注释:您甚至可以教授石器时代的 IE6 如何处理未知的 HTML 元素。

把 HTML5 元素定义为块级元素

HTML5 定义了八个新的语义 HTML 元素。所有都是块级元素。

您可以把 CSS display 属性设置为 block,以确保老式浏览器中正确的行为:

实例

  1. header, section, footer, aside, nav, main, article, figure {
  2. display: block;
  3. }

向 HTML 添加新元素

您可以通过浏览器 trick 向 HTML 添加任何新元素:

本例向 HTML 添加了一个名为 <myHero> 的新元素,并为其定义 display 样式:

实例

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <title>Creating an HTML Element</title>
  6. <script>document.createElement("myHero")</script>
  7. <style>
  8. myHero {
  9. display: block;
  10. background-color: #ddd;
  11. padding: 50px;
  12. font-size: 30px;
  13. }
  14. </style>
  15. </head>
  16.  
  17. <body>
  18.  
  19. <h1>My First Heading</h1>
  20.  
  21. <p>My first paragraph.</p>
  22.  
  23. <myHero>My First Hero</myHero>
  24.  
  25. </body>
  26. </html>

已添加的 JavaScript 语句 document.createElement("myHero"),仅适用于 IE。

Internet Explorer 的问题

上述方案可用于所有新的 HTML5 元素,但是:

注意:Internet Explorer 8 以及更早的版本,不允许对未知元素添加样式。

幸运的是,Sjoerd Visscher 创造了 "HTML5 Enabling JavaScript", "the shiv"

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

以上代码是一段注释,但是 IE9 的早期版本会读取它(并理解它)。

完整的 Shiv 解决方案

实例

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <title>Styling HTML5</title>
  6. <!--[if lt IE 9]>
  7. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  8. <![endif]-->
  9. </head>
  10.  
  11. <body>
  12.  
  13. <h1>My First Article</h1>
  14.  
  15. <article>
  16. London is the capital city of England.
  17. It is the most populous city in the United Kingdom,
  18. with a metropolitan area of over 13 million inhabitants.
  19. </article>
  20.  
  21. </body>
  22. </html>

引用 shiv 代码的链接必须位于 <head> 元素中,因为 Internet Explorer 需要在读取之前认识所有新元素。

HTML5 Skeleton

实例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>HTML5 Skeleton</title>
  5. <meta charset="utf-8">
  6.  
  7. <!--[if lt IE 9]>
  8. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js">
  9. </script>
  10. <![endif]-->
  11.  
  12. <style>
  13. body {font-family: Verdana, sans-serif; font-size:0.8em;}
  14. header,nav, section,article,footer
  15. {border:1px solid grey; margin:5px; padding:8px;}
  16. nav ul {margin:0; padding:0;}
  17. nav ul li {display:inline; margin:5px;}
  18. </style>
  19. </head>
  20.  
  21. <body>
  22.  
  23. <header>
  24. <h1>HTML5 SKeleton</h1>
  25. </header>
  26.  
  27. <nav>
  28. <ul>
  29. <li><a href="html5_semantic_elements.asp">HTML5 Semantic</a></li>
  30. <li><a href="html5_geolocation.asp">HTML5 Geolocation</a></li>
  31. <li><a href="html5_canvas.asp">HTML5 Graphics</a></li>
  32. </ul>
  33. </nav>
  34.  
  35. <section>
  36.  
  37. <h1>Famous Cities</h1>
  38.  
  39. <article>
  40. <h2>London</h2>
  41. <p>London is the capital city of England. It is the most populous city in the United Kingdom,
  42. with a metropolitan area of over 13 million inhabitants.</p>
  43. </article>
  44.  
  45. <article>
  46. <h2>Paris</h2>
  47. <p>Paris is the capital and most populous city of France.</p>
  48. </article>
  49.  
  50. <article>
  51. <h2>Tokyo</h2>
  52. <p>Tokyo is the capital of Japan, the center of the Greater Tokyo Area,
  53. and the most populous metropolitan area in the world.</p>
  54. </article>
  55.  
  56. </section>
  57.  
  58. <footer>
  59. <p>漏 2014 yousite. All rights reserved.</p>
  60. </footer>
  61.  
  62. </body>
  63. </html>