1.如何調(diào)試 IE 瀏覽器
- 使用高版本IE的控制臺(tái)(IE8+)
- border: 1px solid red; 或outline: 1px solid red;(outline的好處是不占寬度,但有些IE6/7不支持)
- 在瀏覽器地址欄輸入javascript:alert(document.get…),
如:javascript:alert(document.getElementsByTagName("div")[0].style.border="1px solid red")
2.什么是CSS hack?在 CSS 和 HTML里如何寫(xiě) hack?在 CSS 中 IE 7、IE 8的 hack 方式?
不同的瀏覽器對(duì)css的解析方式不一樣,會(huì)導(dǎo)致頁(yè)面在不同瀏覽器下表現(xiàn)不一致,針對(duì)不同的瀏覽器寫(xiě)不同的css樣式,使得頁(yè)面最終在不同瀏覽器表現(xiàn)大體相同,這就叫css hack。
- css 中寫(xiě)hack的方式:屬性加前綴。
下劃線:如.selector { _color: red; }
,IE6能識(shí)別,IE7不能識(shí)別;
星號(hào):如.selector { *color: red; }
,IE6和IE7都能識(shí)別;
\9:如.selector { color: red\9; }
,IE6/7/8都能識(shí)別; - html中寫(xiě)hack:添加條件注釋。(IE10開(kāi)始不支持cc注釋了。)
如:下面的條件注釋表示IE8及以下將應(yīng)用ie8.css樣式。
<!--[if lte IE 8]>
<link rel="stylesheet" href="ie8.css">
<![endif]-->
3.列舉幾種 瀏覽器兼容問(wèn)題
IE6/7只支持inline轉(zhuǎn)換成inline-block,不支持block轉(zhuǎn)換成inline-block
解決方法:.sellector { display:inline-block; *zoom:1; *display:inline;}
IE6/7只支持a標(biāo)簽使用hover,不支持其他標(biāo)簽使用hover。
IE6/7不支持最大最小寬高
4.針對(duì)兼容、多瀏覽器覆蓋有什么看法?漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)是什么意思?
- 在開(kāi)發(fā)網(wǎng)頁(yè)的時(shí)候,不可能做到所有的瀏覽器都兼容,而應(yīng)該根據(jù)瀏覽器市場(chǎng)占有率,兼容主流、淘汰末流。而且并不需要頁(yè)面在各個(gè)瀏覽器上表現(xiàn)效果都一致,對(duì)于高級(jí)瀏覽器功能全開(kāi),提供最好的用戶體驗(yàn)。對(duì)于低級(jí)瀏覽器頁(yè)面展示效果可以降低標(biāo)準(zhǔn)。
- 漸進(jìn)增強(qiáng):先兼容低版本瀏覽器使其實(shí)現(xiàn)基本的功能,再對(duì)高級(jí)瀏覽器進(jìn)行效果、交互等改進(jìn)和追加功能。
- 優(yōu)雅降級(jí):一開(kāi)始就針對(duì)高版本瀏覽器進(jìn)行頁(yè)面構(gòu)建,然后再針對(duì)低版本瀏覽器進(jìn)行兼容。
5.reset.css和normalize.css分別是做什么的?為什么推薦使用 normalize.css?
兩者都是全局樣式重置,reset.css相對(duì)暴力,不管你有沒(méi)有用,統(tǒng)統(tǒng)重置成一樣的效果,且影響的范圍很大,講求跨瀏覽器的一致性。normalize 相對(duì)平和,注重通用的方案,重置掉該重置的樣式,保留有用的 瀏覽器默認(rèn)樣式,同時(shí)進(jìn)行一些 bug 的修復(fù)。這點(diǎn)是 reset.css 所缺乏的,也是推薦使用normalize.css的原因。
6.IE盒模型和標(biāo)準(zhǔn)盒模型有什么區(qū)別? 怎樣使 IE7、8使用標(biāo)準(zhǔn)盒模型?box-sizing:border-box有什么作用?
IE盒模型:width=內(nèi)容寬度+border寬度+兩側(cè)內(nèi)邊距寬度;
標(biāo)準(zhǔn)盒模型:width=內(nèi)容寬度;
box-sizing:border-box,聲明盒子遵從IE盒模型規(guī)則;
7.在 IE 7、8 中展示 盒模型、inline-block、max-width的區(qū)別
-
沒(méi)寫(xiě)doctype聲明的情況下:IE7/8中表現(xiàn)一樣,盒模型是IE盒模型,inline-block都不生效,max-width不起作用
-
寫(xiě)了doctype聲明的情況下:盒模型都是按照標(biāo)準(zhǔn)盒模型解析的,inline-block在IE8下有效,在IE7下依然無(wú)效,max-width都起作用。