關(guān)于問題的答案都是找到的比較正確的剖淀,僅起到參考作用味廊,關(guān)于問題100%面試題...
就這樣
1.doctype有什么用?
有什么用骂铁?
聲明位于文檔中的最前面的位置,處于 標(biāo)簽之前罩抗。此標(biāo)簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規(guī)范拉庵。
該標(biāo)簽可聲明三種 DTD 類型,分別表示嚴(yán)格版本套蒂、過渡版本以及基于框架的 HTML 文檔钞支。
HTML 4.01 規(guī)定了三種文檔類型:Strict、Transitional 以及 Frameset泣懊。
1)HTML Strict DTD:
如果您需要干凈的標(biāo)記伸辟,免于表現(xiàn)層的混亂,請使用此類型馍刮。不支持Frameset信夫。請與層疊樣式表(CSS)配合使用:
http://www.w3.org/TR/html4/strict.dtd">
2)HTML Transitional DTD:
Transitional DTD 可包含 W3C 所期望移入樣式表的呈現(xiàn)屬性和元素。不支持Frameset卡啰。如果您的讀者使用了不支持層疊樣式表(CSS)的瀏覽器以至于您不得不使用 HTML 的呈現(xiàn)特性時静稻,請使用此類型:
http://www.w3.org/TR/html4/loose.dtd">
3)Frameset DTD:
Frameset DTD 應(yīng)當(dāng)被用于帶有框架的文檔。除 frameset 元素取代了 body 元素之外匈辱,F(xiàn)rameset DTD 等同于 Transitional DTD:
http://www.w3.org/TR/html4/frameset.dtd">
PS:同時XHTML 1.0 也規(guī)定了三種 XML 文檔類型:Strict振湾、Transitional 以及 Frameset。
2.Quicks模式和Strict模式對比
1亡脸、quirks mode和strict mode是瀏覽器解析css的兩種模式押搪,或者可以稱之為解析方法。目前正在使用的瀏覽器這兩種模式都支持 浅碾。
2大州、歷史原因。
當(dāng)早期的瀏覽器Netscape 4和Explorer 4對css進行解析時垂谢,并未遵守W3C標(biāo)準(zhǔn)厦画,這時的解析方式就被我們稱之為quirks mode(怪異模式),但隨著W3C的標(biāo)準(zhǔn)越來越重要,眾多的瀏覽器開始依照W3C標(biāo)準(zhǔn)解析CSS,仿照W3C標(biāo)準(zhǔn)解析CSS的模式我們叫做strict mode(嚴(yán)格模式).
3根暑、后來的瀏覽器雖然支持strict mode力试,但眾多瀏覽器并未放棄支持quirks mode。
一個重要的原因就是為了之前大量在quirks mode下開發(fā)的網(wǎng)頁能夠得到正確的顯示排嫌。所以畸裳,這些支持兩種模式的瀏覽器當(dāng)拿到一張網(wǎng)頁時,所做的一個前期工作就是判斷采取何種方式進行解析(判斷條件 后面會說)躏率。注:Explorer 5仍然只支持quirks mode
4躯畴、瀏覽器如何判斷何用哪種方式解析CSS民鼓?
解決方案就是采用doctype聲明薇芝,大多數(shù)瀏覽器采用下面的這些判斷規(guī)則
瀏覽器要使老舊的網(wǎng)頁正常工作,但這部分網(wǎng)頁是沒有doctype聲明的丰嘉,所以瀏覽器對沒有doctype聲明的網(wǎng)頁采用quirks mode解析夯到。
對于擁有doctype聲明的網(wǎng)頁,什么瀏覽器采用何種模式解析饮亏,這里有一張詳細列表可參考:http://hsivonen.iki.fi/doctype/
對于擁有doctype聲明的網(wǎng)頁耍贾,這里有幾條簡單的規(guī)則可用于判斷:
對于那些瀏覽器不能識別的doctype聲明,瀏覽器采用strict mode解析
在doctype聲明中路幸,沒有使用DTD聲明或者使用HTML4以下(不包括HTML4)的DTD聲明時荐开,基本所有的瀏覽器都是使用quirks mode呈現(xiàn),其他的則使用strict mode解析简肴。
可以這么說晃听,在現(xiàn)有有doctype聲明的網(wǎng)頁,絕大多數(shù)是采用strict mode進行解析的砰识。
在ie6中能扒,如果在doctype聲明前有一個xml聲明(比如:),則采用quirks mode解析辫狼。這條規(guī)則在ie7中已經(jīng)移除了初斑。
5、mozilla提出了almost strict moede 膨处,和strict mode的區(qū)別是:
img元素在strict中是inline的见秤,而在almost strict mode中是block的。其實我們前面所說真椿,在大多數(shù)瀏覽器鹃答,大多數(shù)doctype聲明觸發(fā)的是almost strict mode;
6、quirks mode和strict mode最大的不同就是提現(xiàn)在對盒模式的解釋上 瀑粥,這也是我們在js里要注意的地方挣跋。
什么是盒模式? 這是針對塊級元素說的狞换,我這里只簡單說一下(詳情請查閱相關(guān)資料)避咆。說白了就是把塊級元素想像成一個裝東西的盒子舟肉,而margin,padding,border,width這些css屬性構(gòu)成了盒模式。
而區(qū)別就是產(chǎn)生在width屬性上:
在strict mode中 :
width是內(nèi)容寬度 查库,也就是說,元素真正的寬度 = margin-left? +? border-left-width? +? padding-left? + width? +? padding-right? +? border-right-width? +? margin-right;
在quirks mode中 :
width則是元素的實際寬度 路媚,內(nèi)容寬度 = width? -? (margin-left? +? margin-right? +? padding-left? +? padding-right? +? border-left-width? +? border-right-width)
這里把盒模式相關(guān)的東西記錄一下,備忘 樊销!
·浮動元素(無論左或者右浮動)邊界不壓縮 铡羡,且若浮動元素不聲明寬度,則其寬度趨向于0意鲸,即壓縮到其內(nèi)容能承受的最小寬度烦周。
·如果盒中沒有內(nèi)容,則即使定義了寬度和高度都為100%临扮,實際上只占0% 论矾,因此不會被顯示,此點在采取層布局的時候需特別注意杆勇。
·邊界值可為負贪壳,其顯示效果各瀏覽器可能不相同 。
·填充值不可為負 蚜退。
·邊框默認(rèn)的樣式(border-style)為不顯示(none) 闰靴。
7、在quirks mode 和 strict mode中還有一個區(qū)別 钻注,但沒經(jīng)過驗證蚂且,我只是發(fā)現(xiàn)有這個現(xiàn)象。
在strict mode 中幅恋,
table的css屬性font-size會繼承父級元素的 杏死,也就是說,table中的字體大小會繼承父級元素字體的大小。
在quirks mode 中淑翼,
table的css屬性font-size不會繼承父級元素的 腐巢,需要專門設(shè)置一下。也就是說玄括,table中的字體大小不會繼承父級元素字體的大小冯丙。
8、在js中如何判斷當(dāng)前瀏覽器正在以何種方式解析遭京?
document對象有個屬性compatMode ,它有兩個值:
BackCompat??? 對應(yīng)quirks mode
CSS1Compat??? 對應(yīng)strict mode
3.cookie? localStoragesessionStorage 前端儲存的方式
轉(zhuǎn)載網(wǎng)址:http://mp.weixin.qq.com/s?__biz=MzIwNjQwMzUwMQ==&mid=2247484013&idx=1&sn=270295c8a6fe604d22e71d8087297d35&scene=2&srcid=0725MecycQlJwqHEuiYMRaas#rd
微信公眾號 ?前端之巔 可自行關(guān)注
侯禹胃惜,現(xiàn)就職于百度,從事Web前端開發(fā)哪雕,熱愛技術(shù)分享船殉。本文將和大家一起聊一聊前端存儲那些事兒。
在Web開發(fā)越來越復(fù)雜的今天热监,前端擁有的能力也越來越多捺弦。其中最重要的一項莫過于Web存儲。開發(fā)者們?nèi)绻褂玫卯?dāng)孝扛,這些存儲可以幫助我們提升網(wǎng)頁的性能與靈活度。本文不講個中的細節(jié)幽崩,只講各種前端存儲的利弊苦始,與各類存儲的應(yīng)用場景。畢竟這些技術(shù)的細節(jié)在網(wǎng)上隨處可見慌申,如果讀者你決定使用的話陌选,再去細查也不遲。
4 跨域的方式
參考地址:http://www.cnblogs.com/2050/p/3191744.html
5.閉包Closure
轉(zhuǎn)載地址:http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
學(xué)習(xí)Javascript閉包(Closure)
作者:阮一峰
6.MVC設(shè)計模式
轉(zhuǎn)載地址:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
作者:阮一峰
注:MVC 阮老師的這篇博客爭議較大