DOCTYPE的作用以及標準模式和相容模式的區別

2022-08-09 06:30:10 字數 1837 閱讀 1305

宣告必須處於html文件的頭部,在標籤之前,告知瀏覽器的解析器用什麼文件標準解析這個文件。doctype不存在或格式不正確會導致文件以相容模式呈現。html5中不區分大小寫

宣告不是乙個html標籤,是乙個用於告訴瀏覽器當前html版本的指令

現代瀏覽器的html布局引擎通過檢查doctype決定使用相容模式還是標準模式對文件進行渲染,一些瀏覽器有乙個接近標準模型。

在html4.01中宣告指向乙個dtd,由於html4.01基於sgml,所以dtd指定了標記規則以保證瀏覽器正確渲染內容

html5不基於sgml,所以不用指定dtd

標準模式和相容模式的區別:標準模式的排版 和 js運作模式都是以該瀏覽器支援的最高標準執行。在相容模式中,頁面以寬鬆的向後相容的方式顯示,模擬老式瀏覽器的行為以防止站點無法工作。

具體區別:

1.盒模型

在嚴格模式中 :width是內容寬度 ,元素真正的寬度 = width;

在相容模式中 :width則是=width+padding+border

2.相容模式下可設定百分比的高度和行內元素的高寬

在standards模式下,給span等行內元素設定wdith和height都不會生效,而在相容模式下,則會生效。

在standards模式下,乙個元素的高度是由其包含的內容來決定的,如果父元素沒有設定高度,子元素設定乙個百分比的高度是無效的。

3.用margin:0 auto設定水平居中在ie下會失效

使用margin:0 auto在standards模式下可以使元素水平居中,但在相容模式下卻會失效(用text-align屬性解決)

body;#content

4.相容模式下table中的字型屬性不能繼承上層的設定,white-space:pre會失效,設定的padding會失效

宣告必須處於html文件的頭部,在標籤之前,告知瀏覽器的解析器用什麼文件標準解析這個文件。doctype不存在或格式不正確會導致文件以相容模式呈現。html5中不區分大小寫

宣告不是乙個html標籤,是乙個用於告訴瀏覽器當前html版本的指令

現代瀏覽器的html布局引擎通過檢查doctype決定使用相容模式還是標準模式對文件進行渲染,一些瀏覽器有乙個接近標準模型。

在html4.01中宣告指向乙個dtd,由於html4.01基於sgml,所以dtd指定了標記規則以保證瀏覽器正確渲染內容

html5不基於sgml,所以不用指定dtd

標準模式和相容模式的區別:標準模式的排版 和 js運作模式都是以該瀏覽器支援的最高標準執行。在相容模式中,頁面以寬鬆的向後相容的方式顯示,模擬老式瀏覽器的行為以防止站點無法工作。

具體區別:

1.盒模型

在嚴格模式中 :width是內容寬度 ,元素真正的寬度 = width;

在相容模式中 :width則是=width+padding+border

2.相容模式下可設定百分比的高度和行內元素的高寬

在standards模式下,給span等行內元素設定wdith和height都不會生效,而在相容模式下,則會生效。

在standards模式下,乙個元素的高度是由其包含的內容來決定的,如果父元素沒有設定高度,子元素設定乙個百分比的高度是無效的。

3.用margin:0 auto設定水平居中在ie下會失效

使用margin:0 auto在standards模式下可以使元素水平居中,但在相容模式下卻會失效(用text-align屬性解決)

body;#content

4.相容模式下table中的字型屬性不能繼承上層的設定,white-space:pre會失效,設定的padding會失效

static的作用以及實驗

1 靜態區域性變數 普通的區域性變數在棧空間上分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但是記得使用完這個堆空間後要釋放之。static區域性變數中文名叫靜態區域性變數。它與普通的區域性變數比起來有如下幾個區別 位置 ...

stdafx h的作用以及原理

vc工程裡面經常見到stdafx.h這個標頭檔案,以前也沒有特別注意,但是這個檔案用不好經常會出錯,所以就google了一下,總算是弄清楚了。所謂標頭檔案預編譯,就是把乙個工程 project 中使用的一些mfc標準標頭檔案 如windows.h afxwin.h 預先編譯,以後該工程編譯時,不再編...

vuex namespaced的作用以及使用方式

vuex中的store分模組管理,需要在store的index.js中引入各個模組,為了解決不同模組命名衝突的問題,將不同模組的namespaced true,之後在不同頁面中引入getter actions mutations時,需要加上所屬的模組名 1 宣告分模組的store時加上namespa...