[1]避免不必要的複雜性
[2]支援已有的内容
[3]解決現實的問題
[4]内容模型
[5]平穩退化
前面的話
實際上,html5并不是由w3c直接制定的,w3c的方向是xhtml2,而不是html5。當xhtml2脫離現實,無法付諸實踐時,w3c工作組才将研究方向轉向html5。為什麼xhtml2從未落到實處?因為它違反了一條設計原理,這條設計原理就是著名的伯斯塔爾法則——發送時要保守;接收時要開放。而在html5設計過程中遵循了一系列原則,才使得html5得以快速推廣。本文将介紹html5遵循的5個設計原則
避免不必要的複雜性
html4
<!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
html5
<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8">
支援已有内容
以下四段代碼,在xhtml中隻有第一段是正确的;而在html5中,所有的都是正确的
<img src="foo" alt="bar" />
<p class="foo">Hello world</p>
<img src="foo" alt="bar">
<p class="foo">Hello world
<IMG SRC="foo" ALT="bar">
<P CLASS="foo">Hello world</P>
<img src=foo alt=bar>
<p class=foo>Hello world</p>
解決現實的問題
在html4中,即使兩個塊級元素元素有相同的連結位址,也必須分開寫,因為内聯元素不能包含塊級元素
<h2><a href="/path/to/resource">Headline text</a></h2>
<p><a href="/path/to/resource">Paragraph text.</a></p>
而在html5中,由于使用了内容模型,<a>元素也可以包含塊級元素
<a href="/path/to/resource">
<h2>Headline text</h2>
<p>Paragraph text.</p>
</a>
内容模型
html5新增了多個元素,其中包括:section、article、aside和nav,它們代表了一種新的内容模型——給内容分區。以前人們一直都在用div來組織頁面中的内容,但與其他類似的元素一樣,div本身并沒有語義。但section、article、aside和nav實際上是在明确地告訴你——這一塊就像文檔中的另一個文檔一樣。位于這些元素中的任何内容,都可以擁有自己的概要、标題,自己的腳部。
平穩退化
浏覽器在遇到不識别的type值時,會将type的值解釋為text
input type="number"
input type="search"
input type="range"
input type="email"
input type="date"
input type="url"
好的代碼像粥一樣,都是用時間熬出來的