《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元素。
對本地離線儲存的更好支援。
新元素和表單控制元件。
而這些新特性在如今的瀏覽器最新版本中得到越來越普遍的實現,越來越多的開發者開始學習和使用這些新特性。
相關文章
- csharp入門經典CSharp
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- Python入門經典案例一Python
- Unix 入門經典 筆記筆記
- 經典加密演算法入門-RSA加密演算法
- 博弈論經典模型解析(入門級)模型
- 聊聊經典機器學習入門機器學習
- Spark入門(三)--Spark經典的單詞統計Spark
- C語言入門經典(第5版)C語言
- Go語言入門經典第18章Go
- 嵌入式開發 ARM入門經典
- kaggle再一次入門~經典入門級競賽~Titanic
- Chapter1 入門/Section 1.2APT
- Python 入門之經典函式例項(二)Python函式
- 了不起的 TypeScript 入門教程(1.2W字)TypeScript
- 大話PM 談談產品入門的經典語錄
- JavaScript函數語言程式設計入門經典JavaScript函數程式設計
- 詳解選擇html5建站的優勢HTML
- HTML5語言有哪些優勢?HTML
- 演算法競賽入門經典訓練指南 pdf演算法
- Python入門教程之Python經典面試題(附答案)Python面試題
- 十大Python經典面試題,入門必知!Python面試題
- HTML5的基本入門格式介紹HTML
- Python程式設計入門——基礎語法詳解(經典)Python程式設計
- 大資料hadoop 新手快速入門經典視訊教程大資料Hadoop
- Python網路程式設計(基礎總結入門經典)Python程式設計
- Linux作業系統的優勢是什麼?Linux入門Linux作業系統
- 六個經典的HTML5面試問題奉上,太有用啦!HTML面試
- 【機器學習】深度學習與經典機器學習的優劣勢一覽機器學習深度學習
- 強化學習入門知識與經典專案分析1.3強化學習
- 深度學習從入門到進階的12個經典問題及解答深度學習
- HTML5基礎入門之常見的HTML5框架有哪些?HTML框架
- 給萌新HTML5 入門指南HTML
- C語言入門經典(第4版)電子書pdf下載C語言
- HTML與CSS入門經典(第7版)電子書pdf下載HTMLCSS
- 經典氣泡排序的分析、優化及測試排序優化
- 極簡 Node.js 入門 - 1.2 模組系統Node.js
- 如何優雅的入門golangGolang
- 給萌新HTML5 入門指南(二)HTML