HTML知識(shí)

1、HTML、XML、XHTML 有什么區(qū)別
HTML是超文本標(biāo)記語(yǔ)言(Hyper Text Markup Language),是語(yǔ)法較為松散的、不嚴(yán)格的Web語(yǔ)言。比如大小寫(xiě)混寫(xiě),編碼不規(guī)范。
XML是可擴(kuò)展標(biāo)識(shí)語(yǔ)言(The Extensible Markup Language),主要用于存儲(chǔ)數(shù)據(jù)和結(jié)構(gòu),重點(diǎn)是什么是數(shù)據(jù),如何存放數(shù)據(jù)。XML 沒(méi)有預(yù)定義的標(biāo)簽,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。
XHTML是可擴(kuò)展超文本標(biāo)記語(yǔ)言(Extensible Hyper Text Markup Language),基于XML,作用與HTML類似,但語(yǔ)法更嚴(yán)格。
最主要的不同:
XHTML 元素必須被正確地嵌套
XHTML 元素必須被關(guān)閉
XHTML 標(biāo)簽名必須用小寫(xiě)字母
XHTML 文檔必須擁有根元素

2、怎樣理解 HTML 語(yǔ)義化
根據(jù)內(nèi)容的結(jié)構(gòu)化(內(nèi)容語(yǔ)義化),選擇合適的標(biāo)簽(代碼語(yǔ)義化)便于開(kāi)發(fā)者閱讀和寫(xiě)出更優(yōu)雅的代碼,同時(shí)讓瀏覽器的爬蟲(chóng)和機(jī)器很好地解析、讀懂內(nèi)容。簡(jiǎn)單來(lái)講是讓代碼更方便理解,更簡(jiǎn)潔,脫離了CSS還能看懂頁(yè)面。
語(yǔ)義化的好處:
清晰的頁(yè)面結(jié)構(gòu):去掉或樣式丟失的時(shí)候,也能讓頁(yè)面呈現(xiàn)清晰的結(jié)構(gòu),增強(qiáng)頁(yè)面的可讀性。
支持更多的設(shè)備:屏幕閱讀器(如果訪客有視障)會(huì)完全根據(jù)你的標(biāo)記來(lái)“讀”你的網(wǎng)頁(yè)。 如果你使用的含語(yǔ)義的標(biāo)記,屏幕閱讀器會(huì)根據(jù)你的標(biāo)簽來(lái)判斷網(wǎng)頁(yè)的內(nèi)容,而不是一個(gè)字母一個(gè)字母的拼寫(xiě)出來(lái)。
有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲(chóng)抓取更多的有效信息,搜索引擎的爬蟲(chóng)也依賴于標(biāo)記來(lái)確定上下文和各個(gè)關(guān)鍵字的權(quán)重。
便于團(tuán)隊(duì)開(kāi)發(fā)和維護(hù):在團(tuán)隊(duì)中大家都遵循同一個(gè)標(biāo)準(zhǔn),可以減少很多差異化的東西,方便開(kāi)發(fā)和維護(hù),提高開(kāi)發(fā)效率,甚至實(shí)現(xiàn)模塊化開(kāi)發(fā)。

3、怎樣理解內(nèi)容與樣式分離的原則
Html指的是結(jié)構(gòu);CSS指的是樣式;JavaScript指的是行為。
寫(xiě) HTML 的時(shí)候先不管樣式, 重點(diǎn)放在HTML的結(jié)構(gòu)和語(yǔ)義化上,讓 HTML 能體現(xiàn)頁(yè)面結(jié)構(gòu)或者內(nèi)容。之后再去寫(xiě)樣式。
HTML 內(nèi)不允許出現(xiàn)屬性樣式,盡量不要出現(xiàn)行內(nèi)樣式。
寫(xiě) JS 的時(shí)候,盡量不要用 JS 去直接操作樣式,而是通過(guò)給元素添加刪除class來(lái)控制樣式變化。

4、有哪些常見(jiàn)的meta標(biāo)簽
標(biāo)簽
含義

<meta charset="utf-8">
聲明文檔使用的字符編碼

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
聲明文檔兼容模式,指示IE以目前可用的最高模式顯示內(nèi)容

<meta name="keywords" content="your tags">
定義針對(duì)搜索引擎的關(guān)鍵詞

<meta name="description" content="不超過(guò)850個(gè)字符">
頁(yè)面描述,告訴搜索引擎你的站點(diǎn)的主要內(nèi)容

<meta name="author" content="你的姓名">
定義網(wǎng)頁(yè)作者

<meta name="revised" content="David, 2008/8/8/" /> >
定義頁(yè)面的最新版本

<meta http-equiv="refresh" content="5"/>
5秒刷新一次頁(yè)面

<meta http-equiv="expires" content="Mon,12 May 2001 00:20:00 GMT">
用于設(shè)定網(wǎng)頁(yè)的到期時(shí)間,一旦過(guò)期則必須到服務(wù)器上重新調(diào)用。需要注意的是必須使用GMT時(shí)間格式

<meta http-equiv="pragma" content="no-cache">
禁用緩存

<meta http-equiv="set-cookie" content="Mon, 12 May 2001 00:20:00 GMT">
cookie設(shè)定,如果網(wǎng)頁(yè)過(guò)期,存盤(pán)的cookie將被刪除。需要注意的也必須使用GMT時(shí)間格式。

<meta name="robots" content="index,follow" />
搜索引擎索引方式

<meta name="robots" content="index,follow" />all:文件將被檢索,且頁(yè)面上的鏈接可以被查詢;none:文件將不被檢索,且頁(yè)面上的鏈接不可以被查詢;index:文件將被檢索;follow:頁(yè)面上的鏈接可以被查詢;noindex:文件將不被檢索;nofollow:頁(yè)面上的鏈接不可以被查詢。

5、文檔聲明的作用,嚴(yán)格模式和混雜模式指什么?<!doctype html>的作用?
網(wǎng)頁(yè)的DOCTYPE聲明的作用DOCTYPE是document type(文檔類型)的簡(jiǎn)寫(xiě),在Web設(shè)計(jì)中用來(lái)說(shuō)明你用的XHTML或者HTML是什么版本。要建立符合標(biāo)準(zhǔn)的網(wǎng)頁(yè),DOCTYPE聲明是必不可少的關(guān)鍵組成部分;除非你的XHTML確定了一個(gè)正確的DOCTYPE,否則你的標(biāo)識(shí)和CSS都不會(huì)生效。在HTML中 doctype 有兩個(gè)主要目的:
對(duì)文檔進(jìn)行有效性驗(yàn)證
決定瀏覽器的呈現(xiàn)模式

Doctype可聲明三種DTD類型,分別表示嚴(yán)格版本、過(guò)渡版本以及基于框架的 HTML 文檔。當(dāng)瀏覽器廠商開(kāi)始創(chuàng)建與標(biāo)準(zhǔn)兼容的瀏覽器時(shí),他們希望確保向后兼容性。為了實(shí)現(xiàn)這一點(diǎn),他們創(chuàng)建了兩種呈現(xiàn)模式:標(biāo)準(zhǔn)模式和混雜模式
嚴(yán)格模式的排版和 JS 運(yùn)作模式是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行;
在混雜模式中,頁(yè)面以一種比較寬松的向后兼容的方式顯示,模擬老式瀏覽器的行為以防止老站點(diǎn)無(wú)法工作。

模式觸發(fā)
瀏覽器根據(jù)DOCTYPE是否存在以及使用的哪種DTD來(lái)選擇要使用的呈現(xiàn)方法。如果XHTML、HTML 4.01文檔包含形式完整的DOCTYPE,那么它一般以標(biāo)準(zhǔn)模式呈現(xiàn)。
包含過(guò)渡DTD和URI的DOCTYPE也導(dǎo)致頁(yè)面以標(biāo)準(zhǔn)模式呈現(xiàn),但是有過(guò)渡DTD而沒(méi)有URI會(huì)導(dǎo)致頁(yè)面以混雜模式呈現(xiàn)。
DOCTYPE不存在或形式不正確會(huì)導(dǎo)致HTML和XHTML文檔以混雜模式呈現(xiàn)。

html5既然沒(méi)有DTD,也就沒(méi)有嚴(yán)格模式與寬松模式的區(qū)別,html5有相對(duì)寬松的語(yǔ)法,實(shí)現(xiàn)時(shí),已經(jīng)盡可能大的實(shí)現(xiàn)了向后兼容。
6、瀏覽器亂碼的原因是什么?如何解決
亂碼產(chǎn)生的根本原因
保存的編碼格式和瀏覽器解析時(shí)的解碼格式不匹配導(dǎo)致
亂碼一般是英文以外的字符才會(huì)出現(xiàn)

解決辦法
設(shè)置<meta charset>標(biāo)簽聲明文檔使用的字符編碼
設(shè)置正確的字符編碼
設(shè)置瀏覽器顯示正確的編碼

如果瀏覽器瀏覽時(shí)候出現(xiàn)網(wǎng)頁(yè)亂碼,在瀏覽器中找到轉(zhuǎn)換編碼的菜單調(diào)整。IE9瀏覽器:在需要轉(zhuǎn)碼的網(wǎng)頁(yè)空白出右鍵鼠標(biāo),選擇“編碼”。傲游瀏覽器:在需要轉(zhuǎn)碼的網(wǎng)頁(yè)時(shí),菜單“查看”-->“編碼”即可選擇轉(zhuǎn)換編碼。谷歌瀏覽器:在需要轉(zhuǎn)碼的網(wǎng)頁(yè)時(shí),點(diǎn)擊右上角“三橫”圖標(biāo)選擇“工具”-->“編碼”即可選擇切換網(wǎng)頁(yè)編碼。

7、常見(jiàn)的瀏覽器有哪些?什么內(nèi)核?

瀏覽器內(nèi)核指的是
瀏覽器內(nèi)核又可以分成兩部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。它負(fù)責(zé)取得網(wǎng)頁(yè)的內(nèi)容(HTML、XML、圖像等等)、整理訊息(例如加入 CSS 等),以及計(jì)算網(wǎng)頁(yè)的顯示方式,然后會(huì)輸出至顯示器或打印機(jī)。瀏覽器的內(nèi)核的不同對(duì)于網(wǎng)頁(yè)的語(yǔ)法解釋會(huì)有不同,所以渲染的效果也不相同。所有網(wǎng)頁(yè)瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要內(nèi)核。JS 引擎則是解析 Javascript 語(yǔ)言,執(zhí)行 javascript 語(yǔ)言來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)態(tài)效果。
最開(kāi)始渲染引擎和 JS 引擎并沒(méi)有區(qū)分的很明確,后來(lái) JS 引擎越來(lái)越獨(dú)立,內(nèi)核就傾向于只指渲染引擎。有一個(gè)網(wǎng)頁(yè)標(biāo)準(zhǔn)計(jì)劃小組制作了一個(gè) ACID 來(lái)測(cè)試引擎的兼容性和性能。內(nèi)核的種類很多,如加上沒(méi)什么人使用的非商業(yè)的免費(fèi)內(nèi)核,可能會(huì)有 10 多種,但是常見(jiàn)的瀏覽器內(nèi)核可以分這四種:Trident、Gecko、Webkit、Blink。
一、Trident內(nèi)核代表產(chǎn)品Internet Explorer,又稱其為IE內(nèi)核。Trident(IE內(nèi)核)是微軟在 Mosaic代碼的基礎(chǔ)之上修改而來(lái)的,Trident實(shí)際上是一款開(kāi)放的內(nèi)核,其接口內(nèi)核設(shè)計(jì)的相當(dāng)成熟,因此才有許多采用 IE 內(nèi)核而非 IE 的瀏覽器(殼瀏覽器)涌現(xiàn)。Trident內(nèi)核常見(jiàn)的瀏覽器有:
IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);
獵豹安全瀏覽器:1.0-4.2版本為T(mén)rident+Webkit,4.3版本為T(mén)rident+Blink;
360安全瀏覽器 :1.0-5.0為T(mén)rident,6.0為T(mén)rident+Webkit,7.0為T(mén)rident+Blink;
360極速瀏覽器:7.5之前為T(mén)rident+Webkit,7.5為T(mén)rident+Blink;
傲游瀏覽器 :傲游1.x、2.x為IE內(nèi)核,3.x為IE與Webkit雙核;
搜狗高速瀏覽器:1.x為T(mén)rident,2.0及以后版本為T(mén)rident+Webkit;

由于市場(chǎng)占有率高,微軟很長(zhǎng)時(shí)間都并沒(méi)有更新 Trident 內(nèi)核,導(dǎo)致
一是 Trident 內(nèi)核曾經(jīng)幾乎與 W3C 標(biāo)準(zhǔn)脫節(jié)(2005年)
二是 Trident 內(nèi)核的大量 Bug 等安全性問(wèn)題沒(méi)有得到及時(shí)解決。

二、Gecko內(nèi)核Gecko(Firefox內(nèi)核)Gecko:Netscape6開(kāi)始采用的內(nèi)核,后來(lái)的Mozilla FireFox(火狐瀏覽器) 也采用了該內(nèi)核,Gecko的特點(diǎn)是代碼完全公開(kāi),因此,其可開(kāi)發(fā)程度很高,全世界的程序員都可以為其編寫(xiě)代碼,增加功能。因?yàn)檫@是個(gè)開(kāi)源內(nèi)核,因此受到許多人的青睞,Gecko內(nèi)核的瀏覽器也很多,這也是Gecko內(nèi)核雖然年輕但市場(chǎng)占有率能夠迅速提高的重要原因。不過(guò)事實(shí)上,Gecko 內(nèi)核的瀏覽器仍然還是Firefox (火狐) 用戶最多,所以有時(shí)也會(huì)被稱為Firefox內(nèi)核。此外Gecko也是一個(gè)跨平臺(tái)內(nèi)核,可以在Windows、 BSD、Linux和Mac OS X中使用。
三、WebKit內(nèi)核代表作品Safari、ChromewebkitWebkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來(lái),它們都是自由軟件,在GPL條約下授權(quán),同時(shí)支持BSD系統(tǒng)的開(kāi)發(fā)。所以Webkit也是自由軟件,同時(shí)開(kāi)放源代碼。特點(diǎn)在于源碼結(jié)構(gòu)清晰、渲染速度極快。缺點(diǎn)是對(duì)網(wǎng)頁(yè)代碼的兼容性不高,導(dǎo)致一些編寫(xiě)不標(biāo)準(zhǔn)的網(wǎng)頁(yè)無(wú)法正常顯示。
WebKit內(nèi)核常見(jiàn)的瀏覽器:
Apple Safari (Win/Mac/iPhone/iPad)
Symbian手機(jī)瀏覽器
Android 默認(rèn)瀏覽器
Google Chrome

四、BinkBlink 是一個(gè)由Google和Opera Software開(kāi)發(fā)的瀏覽器排版引擎,這一渲染引擎是開(kāi)源引擎WebKit中WebCore組件的一個(gè)分支。
Google 決定從 WebKit 衍生出自己的 Blink 引擎,將在 WebKit 代碼的基礎(chǔ)上研發(fā)更加快速和簡(jiǎn)約的渲染引擎,并逐步脫離 WebKit 的影響,創(chuàng)造一個(gè)完全獨(dú)立的 Blink 引擎。
8、列出常見(jiàn)的標(biāo)簽,并簡(jiǎn)單介紹這些標(biāo)簽用在什么場(chǎng)景
標(biāo)簽
場(chǎng)景

head
head標(biāo)簽是頁(yè)面的“頭部”, 一般來(lái)說(shuō),只有6個(gè)標(biāo)簽?zāi)芊旁?lt;head>標(biāo)簽內(nèi):<title>、<meta>、<link>、<style>、<script>、<base>

body
body標(biāo)簽是頁(yè)面的“身體”

h1~h6標(biāo)簽
設(shè)置不同的標(biāo)題

p標(biāo)簽
使用p標(biāo)簽來(lái)標(biāo)記一段文字



換行

<div>
主要用來(lái)為HTML文檔內(nèi)大塊的內(nèi)容提供結(jié)構(gòu)和背景

ul
無(wú)序列表

ol
有序列表

<form>
設(shè)置一個(gè)表單

img
設(shè)置一個(gè)圖像

a
連接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • HTML、XML和XHTML的區(qū)別 HTML,超文本標(biāo)記語(yǔ)言,被設(shè)計(jì)用來(lái)顯示數(shù)據(jù),標(biāo)記內(nèi)容的格式,“超文本”體現(xiàn)在...
    佳聯(lián)閱讀 409評(píng)論 0 0
  • 1、HTML、XML、XHTML 有什么區(qū)別 HTML是超文本標(biāo)記語(yǔ)言(Hyper Text Markup Lan...
    imtns閱讀 318評(píng)論 0 1
  • 1、HTML、XML、XHTML 有什么區(qū)別? HTML是超文本標(biāo)記語(yǔ)言(Hyper Text Markup La...
    不是我的簡(jiǎn)書(shū)閱讀 846評(píng)論 0 0
  • 什么是HTML? HTML指的是超文本標(biāo)記語(yǔ)言 HTML不是一種編程語(yǔ)言,而是一種標(biāo)記語(yǔ)言 標(biāo)記語(yǔ)言是一套標(biāo)記標(biāo)簽...
    Echolate閱讀 533評(píng)論 0 1
  • 人為什么會(huì)累? 因?yàn)闆](méi)有能量!一種是身體上的累,一種是精神上的累!身體上的累往往是由于精神上受影響或是長(zhǎng)期耗費(fèi)體力...
    AlexChenn閱讀 596評(píng)論 0 0

友情鏈接更多精彩內(nèi)容