HTML知識點

一.HTML、XML、XHTML 有什么區別

什么是 HTML?

  • HTML 指的是超文本標記語言 (Hyper Text Markup Language)
  • HTML 不是一種編程語言,而是一種標記語言 (markup language)
  • 標記語言是一套標記標簽 (markup tag)
  • HTML 使用標記標簽來描述網頁

什么是 XML?

  • XML 指可擴展標記語言(EXtensible Markup Language)
  • XML 是一種標記語言,很類似 HTML
  • XML 的設計宗旨是傳輸數據,而非顯示數據
  • XML 標簽沒有被預定義。您需要自行定義標簽。
  • XML 被設計為具有自我描述性。
  • XML 是 W3C 的推薦標準

什么是XHTML ?

  • XHTML 指可擴展超文本標簽語言(EXtensible HyperText Markup Language)。
  • XHTML 的目標是取代 HTML。
  • XHTML 與 HTML 4.01 幾乎是相同的。
  • XHTML 是更嚴格更純凈的 HTML 版本。
  • XHTML 是作為一種 XML 應用被重新定義的 HTML。
  • XHTML 是一個 W3C 標準。

XML 與 HTML 的主要差異

XML 不是 HTML 的替代。
XML 和 HTML 為不同的目的而設計:

  • XML 被設計為傳輸和存儲數據,其焦點是數據的內容。
  • HTML 被設計用來顯示數據,其焦點是數據的外觀。
  • HTML 旨在顯示信息,而 XML 旨在傳輸信息。

二.怎樣理解 HTML 語義化

1、什么是HTML語義化?

語義化,顧名思義,就是你寫的HTML結構,是用相對應的語義的英文字母(標簽)標記的。因為HTML本身就是標記語言,不僅對自己來說,容易閱讀,書寫。別人看你的代碼和結構也容易理解,甚至對一些不是做網頁開發的人來說,也容易閱讀。根據內容的結構化(內容語義化),選擇合適的標簽(代碼語義化)便于開發者閱讀和寫出更優雅的代碼的同時讓瀏覽器的爬蟲和機器很好地解析。

2、為什么要語義化?

  • 為了在沒有CSS的情況下,頁面也能呈現出很好地內容結構、代碼結構:為了裸奔時好看;
  • 用戶體驗:例如title、alt用于解釋名詞或解釋圖片信息、label標簽的活用;
  • 有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關鍵字的權重;
  • 方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁;
  • 便于團隊開發和維護,語義化更具可讀性,是下一步吧網頁的重要動向,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。

3、寫HTML代碼時應注意什么?

  • 盡可能少的使用無語義的標簽div和span;
  • 在語義不明顯時,既可以使用div或者p時,盡量用p, 因為p在默認情況下有上下間距,對兼容特殊終端有利;
  • 不要使用純樣式標簽,如:b、font、u等,改用css設置。
  • 需要強調的文本,可以包含在strong或者em標簽中(瀏覽器預設樣式,能用CSS指定就不用他們),strong默認樣式是加粗(不要用b),em是斜體(不用i);
  • 使用表格時,標題要用caption,表頭用thead,主體部分用tbody包圍,尾部用tfoot包圍。表頭和一般單元格要區分開,表頭用th,單元格用td;
  • 表單域要用fieldset標簽包起來,并用legend標簽說明表單的用途;
  • 每個input標簽對應的說明文本都需要使用label標簽,并且通過為input設置id屬性,在lable標簽中設置for=someld來讓說明文本和相對應的input關聯起來。

三.怎樣理解內容與樣式分離的原則

什么是表現和內容分離:
表現和內容分離是網頁布局一直倡導的原則,也是當下非常流行的名詞之一,可能很多開發人員雖然已經在很好的利用表現和內容分離原則進行網頁布局,但是并沒有對它有過多的注意,下面就結合代碼實例簡單介紹一下什么是表現和內容分離。
代碼實例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>樣式內容混合</title>
</head> 
<body> 
<div style="width:200px;">
  <font color="red">好好學習</font>
</div> 
</body> 
</html>
    以上代碼的表現和內容分離原則做的并不好,因為對文本控制的樣式和網頁結構都混合在一起。這樣不但不利于網頁的修改,而且還讓網頁內容不能夠很好的展現于搜索引擎之下,不利于SEO。

以上代碼修改如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>樣式分離</title>
<style type="text/css"> 
div 
{ 
 width:200px; 
 color:red; 
}  
</style> 
</head> 
<body> 
<div>好好學習</div> 
</body> 
</html>
    以上代碼實現了內容和表現分離的布局。由上面兩個代碼可以得出,所謂”內容“,就是網頁的骨架,如果排版網頁的結構,而”表現“就是對”內容“的潤色,比如div的寬度或者高度,字體的顏色大小等等。這樣網頁的內容就赤裸裸的展現在搜索引擎面前,也利于網站的優化。
CSS技術的最大優點是,它能夠幫助你將Web文檔的內容結構(標記)和版面設計(樣式)分離開來。作為CSS技術的突出優點,文檔結構與文檔樣式的分離可以確保網頁都能平穩退化,具備CSS支持的瀏覽器可以呈現美輪美奐的網頁,不支持或禁用了CSS的瀏覽器同樣可以把網頁內容按照正確的結構顯示出來。

四.有哪些常見的meta標簽

常見meta標簽 標簽描述
<meta charset="utf-8"> <聲明文檔使用的字符編碼>
<meta http-equiv="description" content="網頁描述"> <頁面描述>
<meta http-equiv="keywords" content="關鍵字1,關鍵字2,..."> <關鍵字,搜所引擎 SEO>
<meta name="renderer" content="webkit"> <若頁面需默認用極速核,增加標簽:>
<meta name="renderer" content="ie-comp"> <若頁面需默認用ie兼容內核,增加標簽:>

五.文檔聲明的作用?嚴格模式和混雜模式指什么?<!doctype html> 的作用?

    HTML中<!DOCTYPE html>標簽的作用是什么呢?<!DOCTYPE> 聲明位于文檔中的最前面的位置,處于 <html> 標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規范。它是html5標準網頁聲明,全稱為Document Type HyperText Mark-up Language,意思為文檔種類為超文本標記性語言或超文本鏈接標示語言,現在是這個簡潔形式,支持html5標準的主流瀏覽器都認識這個聲明。表示網頁采用html5,<!DOCTYPE> 聲明位于文檔中的最前面的位置,處于 <html> 標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規范。

由于歷史的原因,瀏覽器對頁面的渲染方式是不一樣的。在W3C標準出來之前,瀏覽器對頁面的渲染沒有同一的標準,產生了差異,quirks mod(混雜模式或者兼容模式),但在W3C標準出臺之后,瀏覽器對頁面的渲染有了同一的標準(嚴格模式或標準模式)。但是為了保證以前就得頁面仍然正常顯示,有的瀏覽器就保存了這兩種渲染模式(標準兼容模式)。那么究竟采用哪一種方式進行渲染,就要看DOCTYPE生命中的DTD。

六.瀏覽器亂碼的原因是什么?如何解決

亂碼造成原因:
    1.比如網頁源代碼是gbk的編碼,而內容中的中文字是utf-8編碼的,這樣瀏覽器打開即會出現html亂碼。反之網頁是編碼utf-8,內容是gbk也會出現亂碼。
    2.html網頁編碼是gbk,而程序從數據庫中調出呈現是utf-8編碼的內容也會造成編碼亂碼。
    3.瀏覽器不能自動檢測網頁編碼,造成網頁亂碼。
    4.網頁沒有設置meta charset編碼造成。導致瀏覽器不能識別你網頁默認編碼類型。
解決方法:
    1.使用軟件進行HTML網頁內容的編輯和開發,盡量不要直接使用記事本進行編輯HTML代碼。
    2.如果網頁設置編碼是gbk的,而數據庫儲存數據編碼格式是UTF-8的,這個時候程序查詢數據庫數據顯示數據前進鄉程序轉碼即可。
    3.如果瀏覽器瀏覽時候出現網頁亂碼,在瀏覽器中找到轉換編碼的菜單。
       在IE9瀏覽器中需要轉碼的網頁空白出右鍵鼠標,即可選擇“編碼”。
       谷歌瀏覽器中瀏覽需要轉碼的網頁時,點擊右上角“三橫”圖標選擇“工具”-->“編碼”即可選擇切換網頁編碼達到讓瀏覽器瀏覽此網頁不是亂碼。
    4.如果自己開發網頁,必須網頁加入meta charset編碼標簽。

七.常見的瀏覽器有哪些,什么內核?

瀏覽器 內核
Internet Explorer Trident(又稱為MSHTML)
Mozilla Firefox Gecko
Safari, Google Chrome WebKit
Opera Presto
  • Trident :[?tra?dnt]
    IE瀏覽器(遨游、世界之窗、騰訊TT…都是IE)Trident內核最慢
    IE 以Trident 作為內核引擎
  • Gecko:[?gek??]
  • 開放源代碼、以C++編寫的網頁排版引擎,是跨平臺的
    FireFox是基于 Gecko 開發;
  • presto:[?prest??]
    目前公認網頁瀏覽速度最快的瀏覽器內核,然而代價是犧牲了網頁的兼容性。由Opera Software開發的瀏覽器排版引擎,Opera(歐朋瀏覽器),但由于市場選擇問題,主要應用在手機平臺–Opera mini
  • Webkit:
    蘋果公司自己的內核,google的chrome也使用webkit作為內核。
    是一個開源的瀏覽器引擎,同時WebKit 也是蘋果Mac OS X 系統引擎框架版本的名稱,它擁有清晰的源碼結構、極快的渲染速度,包含的 WebCore 排版引擎和 JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來。
    許多網站都是按照IE來架設的,很多網站不兼容Webkit內核,比如登錄界面、網銀等網頁均不可使用Webkit內核的瀏覽器。
    Safari([s??fɑri]), Google Chrome, 傲游3, 獵豹瀏覽器, 百度瀏覽器 opera瀏覽器 基于 Webkit 開發。

注:2013年2月Opera宣布轉向WebKit引擎
注:2013年4月Opera宣布放棄WEBKIT,跟隨GOOGLE的新開發的blink引擎

八.列出常見的標簽,并簡單介紹這些標簽用在什么場景

(一)基本文檔結構標簽:

1.:注釋標簽用來在源文檔中插入注釋。注釋會被瀏覽器忽略。您可使用注釋對您的代碼進行解釋,這樣做有助于您在以后的時間對代碼的編輯。
2.<!DOCTYPE>:<!DOCTYPE> 聲明位于文檔中的最前面的位置,處于 <html> 標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規范。
3.<html>:此元素可告知瀏覽器其自身是一個 HTML 文檔。
4.<head>:<head> 標簽用于定義文檔的頭部,它是所有頭部元素的容器。
5.<base>: 標簽描述了基本的鏈接地址/鏈接目標,該標簽作為HTML文檔中所有的鏈接標簽的默認鏈接。
6.<meta>:<meta> 元素可提供有關頁面的元信息(meta-information),比如針對搜索引擎和更新頻度的描述和關鍵詞。包含在<head>標簽中。
7.<title>:<title> 元素可定義文檔的標題。
8.<body>:body 元素定義文檔的主體。body 元素包含文檔的所有內容(比如文本、超鏈接、圖像、表格和列表等等。)

(二)文本、字體、字號、線條、行控制、超鏈接、圖像相關標簽:

9.<b>:呈現粗體文本效果。
10.<i>:顯示斜體文本效果。
11.<br :可插入一個簡單的換行符。
12.<font>:<font> 規定文本的字體、字體尺寸、字體顏色。
13.<h1> -- <h6>:<h1> - <h6> 標簽可定義標題。<h1> 定義最大的標題。<h6> 定義最小的標題。
14.<center>:對其所包括的文本進行水平居中。
15.<a>:超連接
a) <a> 標簽可定義錨。錨 (anchor) 有兩種用法:
i. 通過使用 href 屬性,創建指向另外一個文檔的鏈接(或超鏈接)
ii. 通過使用 name 或 id 屬性,創建一個文檔內部的書簽(也就是說,可以創建指向文檔片段的鏈接)
b) <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。
16.<img>:img 元素向網頁中嵌入一幅圖像。
17.<p>:<p> 標簽定義段落。
18.<pre>:pre 元素可定義預格式化的文本。被包圍在 pre 元素中的文本通常會保留空格和換行符。常見應用就是用來表示計算機的源代碼。
19.<u>:<u> 標簽可定義下劃線文本。
20.<label>:<label> 標簽為 input 元素定義標注(標記)。
21.<strong>...</strong>粗體字(強調)
22.<em>...</em>斜體字(強調)
23.<BLINK> 閃爍的文字
24.<BIG> 顯示大字體
25.<CITE>...<CITE> 用于引經據典的文字
26.<CODE>...</CODE> 用于列出一段程序代碼

(三)表單元素相關標簽:

27.<form>:<form> 標簽用于為用戶輸入創建 HTML 表單。
28.<input>:<input> 標簽用于搜集用戶信息。根據不同的 type 屬性值,輸入字段擁有很多種形式。輸入字段可以是文本字段、復選框、掩碼后的文本控件、單選按鈕、按鈕等等。
29.<select>:select 元素可創建單選或多選菜單。
30.<option>:option 元素定義下拉列表中的一個選項(一個條目)。option 元素位于 select 元素內部。
31.<textarea>:<textarea> 標簽定義多行的文本輸入控件。可以通過 cols 和 rows 屬性來規定 textarea 的尺寸。
32.<button>:<button> 標簽定義一個按鈕。
33.<fieldset>:fieldset 元素可將表單內的相關元素分組。
34.<legend>:legend 元素為 fieldset 元素定義標題(caption)。
35.補充:
a) 客戶端向服務端發送數據可以有兩種方式:1. 使用表單<form>提交;2. 使用超鏈接傳參數<a href=”xxx.jsp?username=james&age=22………”>多個參數全部用&號連接起來。
b) <form action=”指定表單數據提交的處理地址” method=”post/get”>
如:<form action=”……/login.jsp?username=james&age=22”> …. </form>
Method屬性指定提交方式:post方式數據以暗文形式提交,即在瀏覽器地址欄上看不到提交的數據;get方式提交的數據在瀏覽器地址欄上可以看到,所以對敏感數據的提交都會選擇post。

(四)表格相關標簽:

36.<table>:<table> 標簽定義 HTML 表格。
37.<thead>:<thead> 標簽定義表格的表頭。thead 元素應該與 tbody 和 tfoot 元素結合起來使用。
38.<tbody>:<tbody> 標簽表格主體(正文)。tbody 元素應該與 thead 和 tfoot 元素結合起來使用。
39.<tfoot>:<tfoot> 標簽定義表格的頁腳(腳注或表注)。
40.<th>:定義表格內的表頭單元格。
41.<tr>:<tr> 標簽定義 HTML 表格中的行。<td>是列。
42.<td>:<td> 標簽定義 HTML 表格中的標準單元格。
43.<caption>:caption 元素定義表格標題。caption 標簽必須緊隨 table 標簽之后。您只能對每個表格定義一個標題。通常這個標題會被居中于表格之上。

(五)容器相關標簽:DIV + CSS → JavaScript

44.<div>:標簽可以把文檔分割為獨立的、不同的部分。<div> 是一個塊級元素。這意味著它的內容自動地開始一個新行。
45.<span>:<span> 標簽被用來組合文檔中的行內元素。

(六)框架相關標簽

46.<frameset>: frameset 元素可定義一個框架集。它被用來組織多個窗口(框架)。每個框架存有獨立的文檔。在其最簡單的應用中,frameset 元素僅僅會規定在框架集中存在多少列或多少行。您必須使用 cols 或 rows 屬性。
i. <frameset cols="20%,">左右分割,將左邊框架分割大小為20%右邊框架的大小瀏覽器會自動調整
ii. <frameset rows="20%,
">上下分割,將上面框架分割大小為20%下面框架的大小瀏覽器會自動調整
iii. <frameset cols="20%,*,20%">分割左中右三個框架
47.<frame>: <frame> 標簽定義 frameset 中的一個特定的窗口(框架)。
48.<iframe>:iframe 元素會創建包含另外一個文檔的內聯框架(即行內框架)。

(七)序號、列表標簽:

49.<ul>:<ul> 標簽定義無序列表。
50.<ol>:<ol> 標簽定義有序列表。
51.<li>:<li> 標簽定義列表項目。<li> 標簽可用在有序列表 (<ol>) 和無序列表 (<ul>) 中。
52.<dl>:<dl> 標簽定義了定義列表。
53.<dt>:<dt> 標簽定義了定義列表中的項目。
54.<dd>: <dd>標簽定義了定義列表中項目的描述。

(八)引入外部文件

55.<link>:<link> 標簽定義文檔與外部資源的關系。<link> 標簽最常見的用途是鏈接樣式表。
56.<style>:<style> 標簽用于為 HTML 文檔定義樣式信息。
57.<script>:<script> 標簽用于定義客戶端腳本,比如 JavaScript。以通過 src 屬性指向外部腳本文件。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內容

  • HTML、XML、XHTML 有什么區別 HTML:超文本標記語言 (Hyper Text Markup Lang...
    喵不吱閱讀 464評論 0 1
  • 1. HTML、XML、XHTML 有什么區別: HTML(Hypertext Markup Language):...
    饑人谷_兔子君閱讀 756評論 0 2
  • HTML、XML和XHTML的區別 HTML,超文本標記語言,被設計用來顯示數據,標記內容的格式,“超文本”體現在...
    佳聯閱讀 359評論 0 0
  • 1.什么是HTML? HTML是用來描述網頁的一種語言 HTML指的是超文本標記語言(Hyper Text Mar...
    billa_8f6b閱讀 306評論 0 1
  • 趁著快上課的間隙,寫點什么東西。還有十五分鐘,說到哪,便到哪吧。 最近的生活狀態真可謂被我搞得一團糟,可能像是漿糊...
    尋安寧閱讀 719評論 6 8