一、設(shè)置方式:
通過html標(biāo)簽前的<!doctype>進(jìn)行設(shè)置。
<!doctype>讓瀏覽器解析器知道應(yīng)該用哪個(gè)規(guī)范來解析文檔。
如果在文檔開始處沒有發(fā)現(xiàn)文檔類型聲明(即<!doctype>),則所有瀏覽器都會(huì)默認(rèn)開啟混雜模式。
二、瀏覽器模式包括:
混雜模式,近似標(biāo)準(zhǔn)模式,標(biāo)準(zhǔn)模式
三、各個(gè)模式的特點(diǎn):
1.混雜模式是不可取的,因?yàn)槠錄]有兼容性可言。
2.近似標(biāo)準(zhǔn)模式是在盡可能遵循標(biāo)準(zhǔn)的基礎(chǔ)上兼容部分非標(biāo)準(zhǔn)代碼,比如一些已經(jīng)棄用的標(biāo)簽等。
3.標(biāo)準(zhǔn)模式則是對(duì)統(tǒng)一標(biāo)準(zhǔn)實(shí)現(xiàn)最好的模式,它要求標(biāo)簽必須閉合(唯一不需要閉合的就是DOCTYPE標(biāo)簽),不能使用已經(jīng)廢棄的標(biāo)簽等等。
四、關(guān)于名稱
標(biāo)準(zhǔn)模式 === 嚴(yán)格模式:指瀏覽器按照 W3C 標(biāo)準(zhǔn)解析代碼。
混雜模式 === 怪異模式:指瀏覽器用自己的方式解析代碼。
五、注意
1.<!doctype>設(shè)置不同模式,主要影響CSS內(nèi)容的呈現(xiàn),但在某些情況下也會(huì)影響到JavaScript的解釋執(zhí)行。
2.html5沒有嚴(yán)格和混雜之分,只有一種聲明方式<!DOCTYPE html>,瀏覽器以嚴(yán)格模式規(guī)則解析。
3.這里的討論的模式,指的是瀏覽器解析html的規(guī)則,注意與js解析的嚴(yán)格模式、非嚴(yán)格模式加以區(qū)分。
4.擴(kuò)展:js、es6均使用'use strict'指定使用嚴(yán)格模式。??
? ? ? ? ? ? ?react —— 類和模塊內(nèi)部默認(rèn)使用嚴(yán)格模式,所以不需要用‘use strict’指定運(yùn)行模式。
5.無論html還是js,解析模式的指定都是為了讓瀏覽器知道用什么規(guī)則去解析代碼