1. 如何調(diào)試 IE 瀏覽器?
- 使用高版本 IE 的控制臺(tái),( IE7 及以上所有版本都有調(diào)試臺(tái)冤议,按 F12 啟動(dòng)艳吠。 )
- border: 1px solid red;
- outline: 1px solid red;
- javascript:alert(document.get...)
2. 什么是 CSS hack?在 CSS 和 HTML 里如何寫 hack隐绵?在 CSS 中 IE6、IE7 的 hack 方式?
CSS hack: 利用某些瀏覽器自身的 bug 寫出一些特定(妥協(xié))的樣式扎瓶。
CSS hack分類:
CSS Hack大致有3種表現(xiàn)形式,CSS屬性前綴法泌枪、選擇器前綴法以及IE條件注釋法(即HTML頭部引用if IE)Hack概荷,實(shí)際項(xiàng)目中CSS Hack大部分是針對(duì)IE瀏覽器不同版本之間的表現(xiàn)差異而引入的。
- 屬性前綴法(即類內(nèi)部Hack):例如 IE6能識(shí)別下劃線""和星號(hào)" "碌燕,IE7能識(shí)別星號(hào)" "误证,但不能識(shí)別下劃線""继薛,IE6~IE10都認(rèn)識(shí)"\9",但firefox前述三個(gè)都不能認(rèn)識(shí)
- 選擇器前綴法(即選擇器Hack):例如 IE6能識(shí)別html .class{}愈捅,IE7能識(shí)別+html .class{}或者*:first-child+html .class{}
- IE條件注釋法(即HTML條件注釋Hack):針對(duì)所有IE(注:IE10+已經(jīng)不再支持條件注釋): 遏考,針對(duì)IE6及以下版本: 。這類Hack不僅對(duì)CSS生效蓝谨,對(duì)寫在判斷語句里面的所有代碼都會(huì)生效
參考鏈接:
3. 列舉幾種瀏覽器兼容問題灌具?
- inline-block在ie8以上才得以支持。
- 偽類before和after ie8部分支持譬巫,以上支持咖楣。
- 偽類link、hover芦昔、active和visited使用在非a標(biāo)簽元素上诱贿,IE8以下不支持。
- 所有的html5新增語義化標(biāo)簽咕缎,對(duì)于IE8以下都不支持珠十。
- rgba和opacity設(shè)置透明度。IE8以上支持锨阿。
- CSS3中新增canvas屬性宵睦,IE9及以上支持。
- rotate旋轉(zhuǎn)屬性墅诡。IE瀏覽器均不支持壳嚎。
4. 針對(duì)兼容、多瀏覽器覆蓋有什么看法末早?漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)是什么意思烟馅?
根據(jù)瀏覽器用戶分布而適當(dāng)采用相應(yīng)的措施。簡單來說然磷,如果 IE(低版本)用戶多或者增益多郑趁,兼容;少或者增益少姿搜,放棄兼容寡润。當(dāng)然,這得有數(shù)據(jù)的支持舅柜。
漸進(jìn)增強(qiáng)是保證基本效果的情況下增強(qiáng)效果梭纹,優(yōu)雅降級(jí)是保證最惡劣情況下的基本效果。
優(yōu)雅降級(jí) : 從復(fù)雜的現(xiàn)狀開始致份,并試圖減少用戶體驗(yàn)的供給变抽。
漸進(jìn)增強(qiáng) : 從一個(gè)非常基礎(chǔ)的,能夠起作用的版本開始绍载,并不斷擴(kuò)充诡宗,以適應(yīng)未來環(huán)境的需要。
優(yōu)雅降級(jí)意味著往回看击儡、而漸進(jìn)增強(qiáng)則意味著朝前看塔沃,同時(shí)保證其根基處于安全地帶。
參考鏈接:
5. reset.css
和 normalize.css
分別是做什么的曙痘?為什么推薦使用 normalize.css
芳悲?
reset.css
各個(gè)標(biāo)簽立肘,元素在各瀏覽器中的默認(rèn)樣式不同边坤,造成它們?nèi)ヤ秩鞠嗤脑创a渲染出不同的效果,為消除這種效果谅年,reset.css將所有的元素的默認(rèn)樣式清除茧痒,再由開發(fā)者重新定義。
normalize.css
normalize,css的理念是盡量保存瀏覽器的默認(rèn)樣式融蹂,而不進(jìn)行太多的重置旺订,但它所提供的默認(rèn)樣式讓各個(gè)瀏覽器保持了高度的一致,相對(duì)于傳統(tǒng)的reset.css超燃,它是一種新型的区拳,為html5準(zhǔn)備的優(yōu)質(zhì)替代方案。
- 保護(hù)游泳的瀏覽器默認(rèn)樣式而不是簡單粗暴的全部清除
- 為絕大多數(shù)的html元素提供相同的一般化樣式
- 對(duì)瀏覽器所存在的bug意乓,讓各個(gè)瀏覽器保持一致
- 使用一些小技巧優(yōu)化css的可用性
- normalize.css是模塊化的
- normalize.css支持包括手機(jī)瀏覽器在內(nèi)的絕大多數(shù)瀏覽器樱调,同時(shí)對(duì)html5中的標(biāo)簽、樣式届良、排版笆凌。列表、表單士葫、表格等內(nèi)容都進(jìn)行了一般化乞而。
拓展閱讀:
6. IE 盒模型和標(biāo)準(zhǔn)盒模型有什么區(qū)別慢显?怎樣使 IE6 7 8 使用標(biāo)準(zhǔn)盒模型爪模?box-sizeing:border-box
有什么用?
- IE 盒模型「IE6 7 8 怪異模式(不添加 DOCTYPE)」:width = border + padding + content
- 標(biāo)準(zhǔn)盒模型:width = content
對(duì)比圖:
另外荚藻,設(shè)置DOCTYPE屋灌,即可使 IE6 7 8 使用標(biāo)準(zhǔn)盒模型。
box-sizing: border-box
鞋喇,即令盒子按照 IE 盒模型的計(jì)算規(guī)律声滥。(即,width = border + padding + content)
如果設(shè)置了 box-sizing: border-box; 和 width 的寬度(border + padding + content)就會(huì)限定死了。在這個(gè)基礎(chǔ)上落塑,再設(shè)置 padding 或者 border 的寬度纽疟,這時(shí)候,就只能壓榨 content 的寬度了憾赁。
補(bǔ)充:
flex 布局:參考鏈接