HTML與XML與XHTML三者之間的區別
HTML的簡介
超文本標記語言(HyperText Markup Language,簡稱:HTML)是一種用于創建網頁的標準標記語言。HTML是一種基礎技術,常與CSS(層疊樣式表)、JavaScript一起被眾多網站用于設計令人賞心悅目的網頁、網頁應用程序以及移動應用程序的用戶界面。網頁瀏覽器可以讀取HTML文件,并將其渲染成可視化網頁
HTML是一種語法較為松散,不嚴格的Web語言
- HTML 是用來描述網頁的一種語言。
- HTML 指的是超文本標記語言 (Hyper Text Markup Language)
- HTML 不是一種編程語言,而是一種標記語言 (markup language)
- 標記語言是一套標記標簽 (markup tag)
- HTML 使用標記標簽來描述網頁
XML的簡介
簡單來說,XML是一種可擴展標記語言,主要用于存儲數據和結構
- XML 指可擴展標記語言(EXtensible Markup Language)
- XML 是一種標記語言,很類似 HTML
- XML 的設計宗旨是傳輸數據,而非顯示數據
- XML 標簽沒有被預定義。您需要自行定義標簽。
- XML 被設計為具有自我描述性。
- XML 是 W3C 的推薦標準
- XML 不會做任何事情,XML 被設計用來結構化、存儲以及傳輸信息。
HTML與XML的主要差異
- XML 不是 HTML 的替代。
- XML 和 HTML 為不同的目的而設計:
- XML 被設計為傳輸和存儲數據,其焦點是數據的內容。
- HTML 被設計用來顯示數據,其焦點是數據的外觀。
- HTML 旨在顯示信息,而 XML 旨在傳輸信息。
XHTML的簡介
簡單來說,XHTML是一種可擴展超文本標記語言,基于XML,作用與HTML類似,但語法更嚴格
- XHTML(Extensible Hyper Text Markup Language) 是 HTML 與 XML(擴展標記語言)的結合物。
- XHTML 包含了所有與 XML 語法結合的 HTML 4.01 元素。
與前兩者最主要的差異
- XHTML 元素必須被正確地嵌套。
- XHTML 元素必須被關閉。
- 標簽名必須用小寫字母。
- XHTML 文檔必須擁有根元素。
語義化HTML
簡單來說,語義化HTML是一種編寫HTML的方式,需要選擇合適的標簽、使用合理的代碼結構,便于開發者閱讀,同時讓瀏覽器的爬蟲和機器很好地解析。
編寫HTML時,表現內容,樣式和行為的分離
- 寫 HTML 的時候先不管樣式, 重點放在HTML的結構和語義化上,讓 HTML 能體現頁面結構或者內容。之后再去寫樣式。
- 寫 JS 的時候,盡量不要用 JS 去直接操作樣式,而是通過給元素添加刪除class來控制樣式變化
- HTML 內不允許出現屬性樣式,盡量不要出現行內樣式
meta標簽
- <meta charest="utf-8">:設置當前頁面編碼格式“utf-8”
- <meta http-equip="X-UA-Compatible" content="IE=edge chrome=1">:針對雙核瀏覽器選擇合適的內核來渲染
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">:在移動端合理的展示你的頁面
- <meta name="keywords" content="前端 饑人谷">
<meta name="description" content="最有愛的前端學習社區">:通過name的keywords或者description更方便的搜索到當前頁面
常見標簽
- **
- <!DOCTYPE>:
<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位于 <html> 標簽之前;<!DOCTYPE> 聲明不是 HTML 標簽;它是指示 web 瀏覽器關于頁面使用哪個 HTML 版本進行編寫的指令。- a 定義超鏈接,用于從一張頁面鏈接到另一張頁面;a元素最重要的屬性是 href 屬性,它指示鏈接的目標。
- <abbr>:指示簡稱或縮寫,比如 "WWW" 或 "NATO"。
- <acroym>:定義首字母縮寫。HTML5 中不支持 <acronym> 標簽。請使用 <abbr>標簽代替。
- <address>:定義文檔或文章的作者/擁有者的聯系信息;如果 <address> 元素位于 <body> 元素內,則它表示文檔聯系信息;如果 <address> 元素位于 <article> 元素內,則它表示文章的聯系信息。
- <applet>:定義嵌入的 applet。
- <area>:定義圖像映射中的區域(注:圖像映射指得是帶有可點擊區域的圖像)。
area 元素總是嵌套在 <map> 標簽中。 - <article>:<article> 規定獨立的自包含內容。
- <aside>:定義其所處內容之外的內容。
aside 的內容應該與附近的內容相關。 - <audio>:定義聲音,比如音樂或其他音頻流。
- b: 標簽規定粗體文本
- <base>:為頁面上的所有鏈接規定默認地址或默認目標。
- <basefont>:定義基準字體。該標簽可以為文檔中的所有文本定義默認字體顏色、字體大小和字體系列。
- <bdi>:允許您設置一段文本,使其脫離其父元素的文本方向設置。
- <bdo>:可覆蓋默認的文本方向。
- big:標簽呈現大號字體效果。
- blockquote:定義塊引用.
- <body>:定義文檔的主體。
- br:可插入一個簡單的換行符。
- <button>:定義一個按鈕。
- <canvas>:定義圖形,比如圖表和其他圖像。
- caption:定義表格標題。
- <center>:對其所包括的文本進行水平居中。
- col:為表格中一個或多個列定義屬性值。
- colgroup:用于對表格中的列進行組合,以便對其進行格式化。
以下都是短語元素,不建議使用,建議使用樣式表
- cite:定義引用,通常表示它所包含的文本對某個參考文獻的引用,比如書籍或者雜志的標題。
- em:把文本定義為強調的內容
- strong:把文本定義為
- dfn:定義一個定義項目
- code:定義計算機代碼文本
- samp:定義樣本文本
- kbd:定義鍵盤文本
- var:定義變量
參見標簽列表
文檔聲明的作用
文檔聲明用來告知瀏覽器當前文檔所使用的HTML或XHTML規范。是用來聲明當前文檔為html5的方法
嚴格模式是指按照瀏覽器所支持的最高版本來實現效果;混雜模式則相反,盡可能向后兼容。使用老版本瀏覽器的顯示模式。
瀏覽器亂碼原因
1、比如網頁源代碼是gbk的編碼,而內容中的中文字是utf-8編碼的,這樣瀏覽器打開即會出現html亂碼。反之網頁是編碼utf-8,內容是gbk也會出現亂碼。
2、html網頁編碼是gbk,而程序從數據庫中調出呈現是utf-8編碼的內容也會造成編碼亂碼。
3、瀏覽器不能自動檢測網頁編碼,造成網頁亂碼。
常見內核及其對應的瀏覽器
Trident
大部分人都簡稱為IE內核。是微軟開發的一種排版引擎。
IE、The World
Geckos:
Gecko是套開放源代碼的、以C++編寫的網頁排版引擎。這軟件原本是由網景通訊公司開發的,Netcape6開始采用該內核。后來的 Mozilla FireFox也采用了該內核,Geckos的特點是代碼完全公開,因此,其可開發程度很高,全世界的程序員都可以為其編寫代碼,增加功能。Geckos 現在由Mozilla基金會維護。
Firefox
Presto:
Presto是一個由Opera Software開發的瀏覽器排版引擎,該內核在2003年的Opera7中首次被使用。
Opera
Webkit:
蘋果公司自己的內核,也是蘋果的Safari瀏覽器使用的內核。
Safari、Chrome
國內的雙核瀏覽器:
由于IE瀏覽器在國內的普及率非常高,所以造成了很多網上銀行和支付系統只支持IE的Trident內核,其他瀏覽器訪問根本無法進行正常支付和轉賬等業務。而WebKit內核的非IE瀏覽器以更高的性能和更好的用戶體驗擁有了越來越多的用戶。于是雙核瀏覽器應運而生。
360、獵豹、搜狗、百度、遨游、QQ