《HTML5+CSS3入門經典》——1.2 HTML5的優勢
1.2 HTML 5 的優勢
任何新鮮事物的出現,都會帶給人們驚喜,同時也會存在很多爭議。雖然Web 開發者普遍認為HTML 5 好,但是還是會很擔心,例如,新的HTML 5 在老版本的瀏覽器上能否正常執行,會不會產生錯誤等各種問題。HTML 5 是基於各種各樣的理念進行設計的,這些設計理念體現了對可能性和可行性的新認識。
1.2.1 使用HTML 5 的理由
以下三個理由證明我們可以放心使用HTML 5 。相容性:HTML 5 在老版本的瀏覽器上也可以正常執行。實用性:HTML 5 內部並沒有封裝什麼很複雜的、不切實際的功能,而只是封裝了簡單實用的功能。使用者優先性:HTML 5 規範是基於使用者優先準則編寫的。下面針對這些原則進行介紹。
首先是相容性問題。雖然到了HTML 5 時代,但並不代表現在用HTML 4 建立出來的網站必須全部重建。HTML 5 並不是顛覆性的革新。相反,HTML 5 的核心理念實際上是保持一切新特性平滑過渡。儘管HTML 5 標準的一些特性非常具有革命性,但是HTML 5 旨在進化而非革命。這一點正是通過相容性體現出來的。正是因為保障了相容性,才能讓人們毫不猶豫地選擇HTML 5 開發網站。
然後是實用性。所謂的實用性,就是要求能夠解決實際問題。HTML 5 內只封裝了切實有用的功能,不封裝複雜而沒有實際意義的功能。
最後是使用者優先性。HTML 5 規範是基於使用者優先準則編寫的,其主要宗旨是“使用者即上帝”。這意味著在遇到無法解決的衝突時,規範會把使用者放到第一位,其次是頁面的作者,再次是實現者(或瀏覽器),然後是規範制定者,最後才考慮理論的純粹實現。
1.2.2 HTML 5 的化繁為簡
HTML 5 的口號是“簡單至上,儘可能簡化”。因此,HTML 5 做了以下改進。以瀏覽器原生能力替代複雜的JavaScript程式碼。新的簡化的DOCTYPE。
新的簡化的字符集宣告。
簡單而強大的HTML 5 API 。我們會在以後的章節中詳細講解這些改進。
1.2.3 HTML 5 的無外掛正規化
過去,很多功能只能通過外掛或者複雜的hack(本地繪圖API、本地socket 等)來實現。不過,通過外掛的方式實現,通常存在以下幾個問題。
外掛安裝可能失敗。
外掛可能被禁用或者遮蔽。
外掛自身會成為被攻擊的物件。
外掛不容易與HTML文件的其他部分整合(因為外掛邊界、剪裁和透明度問題)。
雖然一些外掛的安裝率很高,但在控制嚴格的公司內部網路環境中經常會被封鎖。此外,由於外掛還會經常給使用者帶來煩人的廣告,一些使用者也會選擇遮蔽此類外掛。如果這樣做,一旦使用者禁用了外掛,就意味著依賴該外掛顯示的內容也無法表現出來了。
在我們已經設計好的頁面中,要想把外掛顯示的內容與頁面上其他元素整合也比較困難,因為會引起剪裁和透明度等問題。外掛使用的是自帶的模式,與普通Web 頁面所使用的不一樣,所以當彈出選單或者其他視覺化元素與外掛重疊時,會特別麻煩。這時,就需要HTML 5 應用原生功能來解決,它可以直接用CSS和JavaScript的方式控制頁面佈局。實際上,這也是HTML 5 的最大亮點,顯示了先前任何HTML版本都不具備的強大能力。HTML 5 不僅僅提供了新元素支援新功能,更重要的是新增了對指令碼和佈局之間的原生互動能力,鑑於此,我們可以實現以前不能實現的效果。
以HTML 5 中的canvas 元素為例,有很多底層的事情以前是沒辦法做到的(比如,在HTML 4 的頁面中就難畫出對角線),而有了canvas,就可以很容易地實現了。更為重要的是,新API釋放出來的潛能,以及僅需寥寥幾行CSS程式碼就能完成佈局的能力。基於HTML 5 的各類API的優秀設計,我們可以輕鬆對它們進行組合應用。HTML 5 的不同功能組合應用為Web 開發注入了一股強大的新生力量。
1.2.4 HTML 5 的新特性
HTML 5 給人們帶來了眾多驚喜,例如下面這些優點和新的特性。基於HTML、CSS、DOM和JavaScript。減少了對外部外掛的需求(比如Flash)。更優秀的錯誤處理。
更多取代指令碼的標記。
獨立於裝置。
用於繪畫的canvas元素。
用於媒介回放的video和audio元素。
對本地離線儲存的更好支援。
新元素和表單控制元件。
而這些新特性在如今的瀏覽器最新版本中得到越來越普遍的實現,越來越多的開發者開始學習和使用這些新特性。
相關文章
- 《HTML5+CSS3入門經典》——第1章 迎接新的Web時代——HTML5的出現HTMLCSSS3Web
- 《HTML與CSS入門經典(第8版)》——1.2建立Web內容HTMLCSSWeb
- Webpack經典入門Web
- 《Node.js入門經典》一1.2 使用Node.js能做什麼Node.js
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- [轉]BI入門經典
- Kafka入門經典教程Kafka
- BI入門經典 (轉)
- 最經典的黑客入門教程黑客
- 《HTML5+CSS3網頁設計入門必讀》——1.2建立Web內容HTMLCSSS3網頁Web
- 盤點使用Html5+CSS3的優勢HTMLCSSS3
- 《HTML5移動應用開發入門經典》——1.1 瞭解HTML5的由來HTML
- Unix 入門經典 筆記筆記
- springboot入門經典Spring Boot
- 《HTML5移動應用開發入門經典》——2.9 測驗HTML
- Python入門經典案例一Python
- 《jQueryMobile入門經典》——2.4 總結jQuery
- 經典加密演算法入門-RSA加密演算法
- 博弈論經典模型解析(入門級)模型
- 《jQueryMobile入門經典》——2.5 問與答jQuery
- 【機器學習】深度學習與經典機器學習的優劣勢一覽機器學習深度學習
- C語言入門經典(第5版)C語言
- Go語言入門經典第18章Go
- 嵌入式開發 ARM入門經典
- 新手入門經典:Jsp環境配置JS
- Spark入門(三)--Spark經典的單詞統計Spark
- 演算法競賽入門經典_5 c++與STL入門演算法C++
- Oracle 優化經典Oracle優化
- 《C語言入門經典》讀後感(一)C語言
- 哪有python入門經典教程資源分享?Python
- 程式語言入門經典案例【Python版】Python
- JFreeChart介紹及經典入門資料
- windows網路程式設計經典入門 (轉)Windows程式設計
- 《HTML5移動應用開發入門經典》——2.5 HTML5標籤及屬性對移動裝置的支援HTML
- Chapter1 入門/Section 1.2APT
- kaggle再一次入門~經典入門級競賽~Titanic
- 大話PM 談談產品入門的經典語錄
- 新手看招:最經典的駭客技術入門知識(轉)