重新認識 HTML5 的語義元素
常用元素
<header>
區塊標題,不要把它只用來取代 <div class=”header”>
它也可以是文章的標題,一頁可以有好多個 <header>
,<header>
裡面至少要有一個 h1~h6。
<nav>
導覽列。裡面裝的東西應該只有 _主要_ 的 navigation links,不要把各種 link 都丟到<nav>
裡面。
舉例來說,footer 裡面常常會有一排 link,那個就不需要包進<nav>
。
<main>
一個頁面只有一個! 任何 global 都不能放在 main 裡面( e.g. <header>
<footer>
logo)
<section>
通常用來把一些相關的元素組合在一起,一般來說,裡面都會包含 heading。
如果這個區塊的內容可以分成幾個部分的話,那應該使用 article。
1 | <section> |
<article>
文章中可以脫離其他部分,獨立出來而又完整,甚至可以復用的一部分,通常有自己的標題,當 article 內嵌 article 時,裡外層的內容應該是相關的,比如一篇文章和它的留言,
而 section 雖然也具有獨立表達內容的能力,但是對外層有一定的相依性,例如這篇文章中的一個章節。
1 | <article> |
<aside>
通常用來包含一些和當前頁面內容有關的額外信息,比如廣告、個人資料信息或相關連結。
<footer>
通常包含作者、版權信息或者相關鏈接等。
簡易分辦 <section><article>
<article>
: 就算脫離了整體也是一個可以獨立存在、具有完整內容的區塊,例如這篇文章。<section>
: 具有獨立表達內容的能力,但是對外層有一定的相依性,例如這篇文章中的一個章節。
下面是簡單的問題,讓我們決定要用 <section> / <article> / <div>
- 具有完整內容的區塊,而且可以出現在你的閱讀器內嗎? 是的話就是
<article>
- 跟主要內容是有相關並且列入 outline 裡不會奇怪的? 是的話就是
<section>
- 跟內容無關或只用來 styling 的? 是的話就是
<div>