HTML5 語義元素
語義= 意義.
語義元素 = 元素的意義.
什么是語義元素?
一個語義元素能夠清楚的描述其意義給瀏覽器和開發(fā)者。
無語義?元素實例: <div> 和 <span> - 無需考慮內容.
語義元素實例: <form>, <table>, and <img> - 清楚的定義了它的內容.
瀏覽器支持
Internet Explorer 9+, Firefox, Chrome, Safari 和 Opera 支持語義元素。
注意:?Internet Explorer 8及更早版本不支持該元素. 但是文章底部提供了兼容的解決方法.
HTML5中新的語義元素
許多現有網站都包含以下HTML代碼: <div id="nav">, <div class="header">, 或者 <div id="footer">, 來指明導航鏈接, 頭部, 以及尾部.
HTML5提供了新的語義元素來明確一個Web頁面的不同部分:
<標題> <導航> <部分> <文章> <旁白> <圖> gt; <頁腳> ; |
HTML5 <header> 元素
<header>元素描述了文檔的頭部區(qū)域
<header>元素注意用于定義內容的介紹展示區(qū)域.
在頁面中你可以使用多個<header> 元素.
以下實例定義了文章的頭部:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php中文網(php.cn)</title> </head> <body> <article> <header> <h1>Internet Explorer 9</h1> <p><time pubdate datetime="2016-10-15"></time></p> </header> <p> Windows Internet Explorer 9(縮寫為 IE9 )是在2011年3月14日21:00發(fā)布的</p> </article> </body> </html>
pubdate ? ?指示 <time> 元素中的日期 / 時間是文檔(或最近的前輩 <article> 元素)的發(fā)布日期 ? ?
運行程序嘗試一下
HTML5 <nav> 元素
<nav> 標簽定義導航鏈接的部分。
<nav> 元素用于定義頁面的導航鏈接部分區(qū)域,但是,不是所有的鏈接都需要包含在 <nav> 元素中!
實例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php中文網(php.cn)</title> </head> <body> <nav> <a href="">HTML</a> | <a href="">CSS</a> | <a href="">JavaScript</a> | <a href="">jQuery</a> </nav> </body> </html>
運行程序嘗試一下
HTML5 <section> 元素
<section> 標簽定義文檔中的節(jié)(section、區(qū)段)。比如章節(jié)、頁眉、頁腳或文檔中的其他部分。
根據W3C HTML5文檔: section 包含了一組內容及其標題。
實例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php中文網(php.cn)</title> </head> <body> <section> <h1>WWF</h1> <p>世界自然基金會(WWF)是一個國際組織致力于保護問題,研究和恢復環(huán)境,前身世界野生動物基金。世界自然基金會成立于1961年。</p> </section> <section> <h1>WWF's Panda symbol</h1> <p>熊貓已經成為世界自然基金會的象征。著名的熊貓世界自然基金會的標志來自一個名為癡癡的熊貓,從北京動物園的倫敦動物園同年世界自然基金會的建立。</p> </section> </body> </html>
運行程序嘗試一下
HTML5 <article> 元素
<article> 標簽定義獨立的內容。.
<article> 元素使用實例:
Forum post(論壇帖子)
Blog post(博客)
News story(新聞故事)
Comment(評論)
實例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php中文網(php.cn)</title> </head> <body> <article> <h1>Internet Explorer 9</h1> <p> Windows Internet Explorer 9(縮寫為 IE9 )在2011年3月14日21:00 發(fā)布。</p> </article> </body> </html>
運行程序嘗試一下
HTML5 <aside> 元素
<aside> 標簽定義頁面主區(qū)域內容之外的內容(比如側邊欄)。
aside 標簽的內容應與主區(qū)域的內容相關.
實例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php中文網(php.cn)</title> </head> <body> <p>我很喜歡在php中文網(php.cn)學習HTML知識</p> <aside> <h2>php中文網(php.cn)</h2> <p>php中文網(php.cn)有很多的PHP和HTML教程</p> </aside> </body> </html>
運行程序嘗試一下
HTML5 <footer> 元素
<footer> 元素描述了文檔的底部區(qū)域.
<footer> 元素應該包含它的包含元素
一個頁腳通常包含文檔的作者,著作權信息,鏈接的使用條款,聯系信息等
文檔中你可以使用多個 <footer>元素.
實例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php中文網(php.cn)</title> </head> <body> <footer> <p>發(fā)布人: 劉奇</p> <p><time pubdate datetime="2016-10-15"></time></p> </footer> </body> </html>
運行程序嘗試一下
HTML5 <figure> 和 <figcaption> 元素
<figure>標簽規(guī)定獨立的流內容(圖像、圖表、照片、代碼等等)。
<figure> 元素的內容應該與主內容相關,但如果被刪除,則不應對文檔流產生影響。
<figcaption> 標簽定義 <figure> 元素的標題.
<figcaption>元素應該被置于 "figure" 元素的第一個或最后一個子元素的位置。
實例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php中文網(php.cn)</title> <!--[if lt IE 9]> <script src="html5shiv.js"></script> <![endif]--> </head> <body> <p>黃山:世界文化與自然雙重遺產,世界地質公園,國家AAAAA級旅游景區(qū),國家級風景名勝區(qū),<br/>全國文明風景旅游區(qū)示范點,中華十大名山,天下第一奇山。黃山位于安徽省南部黃山市境內</p> <figure> <img src="http://images.tuniu.com/images/2013-04-07/1/1X52RthA3c9Y5pHv.jpg" alt="黃山風景" width="304" height="228"> <figcaption>Fig.1 -黃山的一張風景圖.</figcaption> </figure> </body> </html>
運行程序嘗試一下
我們可以開始使用這些語義元素嗎?
以上的元素都是塊元素(除了<figcaption>).
為了讓這些塊及元素在所有版本的瀏覽器中生效,你需要在樣式表文件中設置一下屬性 (以下樣式代碼可以讓舊版本瀏覽器支持本章介紹的塊級元素):
放到<head></head>中間去
<style>
? ?header, section, footer, aside, nav, article, figure
? ?{
? ? ? ?display: block;
? ?}
</style>
Internet Explorer 8 及更早IE版本中的問題
IE8 及更早IE版本無法在這些元素中渲染CSS效果,以至于你不能使用 <header>, <section>, <footer>, <aside>, <nav>, <article>, <figure>, 或者其他的HTML5 elements.
解決辦法:你可以使用HTML5 Shiv Javascript腳本來解決IE的兼容問題。HTML5 Shiv下載地址:http://code.google.com/p/html5shiv/
下載后,將以下代碼放入的網頁中:
<!--[if lt IE 9]>
<script src="html5shiv.js"></script>
<![endif]-->
以上代碼在瀏覽器小于IE9版本時會加載html5shiv.js文件. 你必須將其放置于<head> 元素中,因為 IE瀏覽器需要在頭部加載后渲染這些HTML5的新元素