HTML(HyperText Markup Language)是一種超文本標記語言,用于創(chuàng)建網頁的標準標記語言。它是一種基礎技術,常與CSS、JavaScript一起被眾多網站用于設計令人賞心悅目的網頁、網頁應用程序以及移動應用程序的用戶界面。網頁瀏覽器可以讀取HTML文件,并將其渲染成可視化網頁。
在認識HTML之前,先分清楚一下 HTML 、 XML 、XHTML 這三者的區(qū)別。
HTML、XML、XHTML 這三者之間有什么區(qū)別?
- HTML是用于創(chuàng)建Web的標準的標記語言。旨在顯示信息。
- XML(Extensible Markup Language) 指可擴展標記語言,它也是一種標記語言,不過它的標簽沒有被預定義,需自定義標簽,通常用來傳輸和存儲數(shù)據。(W3C的推薦標準)
- XHTML是根據HTML 4 和 XML 1.0重組而成,是更嚴格更純凈的 HTML 代碼。由于HTML的語法較為松散,對于許多其他設備的要求較高因此就出現(xiàn)了由DTD定義規(guī)則,語法要求更加嚴格的XHTML。
XHTML與HTML的區(qū)別
- 最大的變化在于所有標簽必須閉合。
- 所有的標簽必須小寫。
- 元素必須被正確地嵌套。
- 文檔必須擁有根元素。
更多內容訪問:
XML簡介 - W3School
為什么使用XHTML - W3School
<br />
從一個HTML的頭部開始說起:
文檔聲明(DTD)
文檔聲明 就是寫在最前面的部分,叫做文件類型定義(DTD)。且聲明必須在 HTML 文檔的第一行(這并不是一個 HTML 標簽)
聲明的作用為了告訴瀏覽器該文件的類型。讓瀏覽器解析器知道應該用哪個規(guī)范來解析文檔。
嚴格模式 又稱標準模式,是指瀏覽器按照 W3C 標準解析代碼;
混雜模式 又稱兼容模式,不加文檔聲明,允許瀏覽器使用自己的方式來渲染頁面。
如<!doctype> 就是用來聲明文檔對象模型,用來告訴瀏覽器應該使用哪種方式來解析渲染頁面。而<!doctype html>就是聲明使用HTML5來解析渲染頁面。
而常用的DOCTYPE聲明還有許多。
<br />
meta標簽
meta標簽用來提供有關頁面的元信息,下面是一些常見的meta標簽及其作用。
<meta name="keywords" content="your tags" />頁面關鍵詞,每個網頁應具有描述該網頁內容的一組唯一的關鍵字,便于搜索引擎搜索。<meta name="description" content="150 words" />頁面描述,每個網頁都應有一個不超過 150 個字符且能準確反映網頁內容的描述標簽。<meta http-equiv="refresh" content="0;url=" />頁面重定向和刷新:content內的數(shù)字代表多少時間(秒)后自動刷新,如果加url,則會重定向到指定網頁。<meta http-equiv="X-UA-Compatible" content="IE=6" >使用IE6 ,或者使用IE7、8。<meta http-equiv="Cache-Control" content="no-siteapp" />轉碼申明:用百度打開網頁可能會對其進行轉碼(比如貼廣告),這樣可避免轉碼。<meta http-equiv="cache-control" content="no-cache" />不緩存該網頁。
<br />
HTML標簽
在學習使用HTML的標簽時要注意閉合標簽與一些自閉和標簽的區(qū)別使用,并且要知道實現(xiàn)后的效果,可以參考W3cSchool或MDN頁面的內容。而在博客中羅列這些標簽的意義則不是十分大,應該自主學習。
<br />
--- 在使用HTML時要注意HTML 語義化和表現(xiàn)內容、樣式、行為分離原則 ---
HTML語義化
語義化的HTML 就是根據內容的結構化(內容語義化),選擇合適的標簽(代碼語義化),便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時讓瀏覽器的爬蟲和機器很好地解析。
語義化的網頁的優(yōu)點:
- 即使在沒有CSS的情況下,頁面也能呈現(xiàn)出較好的內容結構;
- 有利于SEO: 和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息;
- 語義 Web 技術有助于利用基于開放標準的技術,從數(shù)據、文檔內容或應用代碼中分離出意義。
H5新增了許多語義化標簽,可以參考該文章 —— HTML 5的革新——語義化標簽
關于SEO優(yōu)化 , 可以參考 搜索引擎優(yōu)化
<br />
表現(xiàn)內容、樣式、行為分離原則
在寫網頁的時候,我們知道HTML負責表現(xiàn)內容,CSS負責樣式,而JS就是行為。
- 寫HTML時,需要盡量的考慮語義化與結構,使得在沒有樣式的情況下也能表現(xiàn)的清晰良好。并且盡量不要把樣式寫在HTML中
- 在寫JS時, 盡量不要使用JS去 操作樣式,而是通過添加刪除類來控制樣式的變化。
這樣的分離,一方面是使得文檔的內容顯現(xiàn)的更加清晰,也使得后期的閱讀與維護更加方便。
<br />
常見瀏覽器及其內核
| 瀏覽器名稱 | 內核 |
|---|---|
| Safari | WebKit |
| Chrome | Blink(WebKit的分支) |
| Opera | Presto |
| FireFox | Geckos |
| IE | Trident |
<br />
瀏覽器的亂碼問題
常見編碼集有:UTF-8 UTF-16 GBK Unicode
注 : 更多參考 編碼的發(fā)展 ,可以對亂碼產生的原因有更好的理解。
瀏覽器出現(xiàn)亂碼的原因:
- 在制作頁面時使用非英文字符時,保存的編碼格式與瀏覽器解析時的解碼格式不匹配(即與meta中指定的解析格式不一樣)
- 沒有指定meta的charset
solution: 在頁面保存時就在HTML的<head>標簽下添加<meta charset="">來聲明編碼格式,來告訴瀏覽器應該用什么解碼格式來解碼。即指定正確的charset值。
例如: 使用UTF-8來編碼的頁面,添加<meta charset="UTF-8">`來告訴瀏覽器使用UTF-8格式來解碼,就不會出現(xiàn)亂碼了。(并非所有亂碼問題都可以使用UTF-8格式編碼來解決)