1.什么是 CSS hack
CSS hack:利用瀏覽器漏洞,使css兼容不同的瀏覽器/版本抛人。共有3種方式:
- IE條件注釋法
```
<!--[if lt IE 9]>
這段文字只在版本小于IE9瀏覽器顯示
<![endif]-->
```
- 屬性前綴法
例如 : IE6能識(shí)別下劃線""和星號(hào)" *"冗懦,IE7能識(shí)別星號(hào)" *"篡九,但不能識(shí)別下劃線""拭卿,IE6~IE10都認(rèn) 識(shí)"\9"爬骤,但firefox前述三個(gè)都不能認(rèn)識(shí)<div>IE6~7為紅色充石,其他為藍(lán)色
```
<div>IE6~7為紅色,其他為藍(lán)色</div>
div{width:500px;height:500px;color:blue;*color:red;}
```
- 選擇器前綴法:類(lèi)似于屬性前綴法盖腕,不過(guò)是給選擇器加前綴
```
div{width:500px;height:500px;color:blue;}div\9{color:yellow;}
```
2.談一談瀏覽器兼容的思路
要不要做
產(chǎn)品角度:用戶范圍
成本角度:值不值得做到什么程度:確定兼容范圍赫冬,讓哪些瀏覽器實(shí)現(xiàn)哪些效果
如何做:
選擇技術(shù)庫(kù)框架/庫(kù)
選擇兼容工具
CSS hack或js能力檢測(cè)做一些修補(bǔ)
3.列舉5種以上瀏覽器兼容的寫(xiě)法
1.使用兼容性好的技術(shù)框架/庫(kù):用低版本的jquery
2.(IE)條件注釋?zhuān)?/p>
3.屬性前綴法
<div>IE6~7為紅色浓镜,其他為藍(lán)色</div>
div{width:500px;height:500px;color:blue;*color:red;}
4.選擇器前綴法
div{width:500px;height:500px;color:blue;}div\9{color:yellow;}
5.使用兼容工具:
- html5shiv.js:在IE6~8(不支持html5標(biāo)簽)上模擬html5標(biāo)簽
- respond.js:在IE6~8(不支持css3)上模擬CSS3 Media Queries
- CSS Reset和Normalize.css
- Modernizr.js:他會(huì)為瀏覽器的html標(biāo)簽生成一批的css的class名稱溃列,標(biāo)記當(dāng)前瀏覽器支持和不支持的特性。我們利用html標(biāo)簽上的類(lèi)名膛薛,就可以為不同版本的不同瀏覽器添加兼容樣式
4.以下工具/名詞是做什么的
1.條件注釋
條件注釋 (conditional comment) 是于HTML源碼中被IE有條件解釋的語(yǔ)句听隐。條件注釋可被用來(lái)向IE 提供及隱藏代碼。
使用了條件注釋的頁(yè)面在 Windows Internet Explorer 9 中可正常工作哄啄,但在 Internet Explorer 10 中無(wú)法正常工作雅任。
通常指的是IE條件注釋?zhuān)肐E6~9的漏洞做IE低版本兼容风范,如<!--[if lt IE 9]>低于IE9時(shí)顯示<[endif]-->
在低于IE9的瀏覽器將顯示文字,其他則不顯示
2.IE Hack
指的是IE瀏覽器漏洞沪么,利用IE Hack硼婿,我們可以兼容IE低版本
3.js 能力檢測(cè)
檢測(cè)當(dāng)前瀏覽器支持和不支持的特性。如Modernizr.js,它會(huì)為瀏覽器的html標(biāo)簽生成一批的css的class名稱禽车,標(biāo)記當(dāng)前瀏覽器支持和不支持的特性寇漫。我們利用html標(biāo)簽上的類(lèi)名,就可以為不同版本的不同瀏覽器添加兼容樣式
4.html5shiv.js
是一種css兼容工具殉摔≈莞欤可在IE6~8(不支持html5標(biāo)簽)上模擬html5標(biāo)簽
5.respond.js
是一種css兼容工具∫菰拢可在IE6~8(不支持css3)上模擬CSS3 Media Queries
6.css reset
強(qiáng)制重置瀏覽器默認(rèn)樣式栓撞。使得所有瀏覽器渲染頁(yè)面效果一致。但存在性能問(wèn)題
7.normalize.css
在默認(rèn)的HTML元素樣式上提供了跨瀏覽器的高度一致性碗硬。
8.Modernizr
是一種css兼容工具瓤湘。他會(huì)為瀏覽器的html標(biāo)簽生成一批的css的class名稱,標(biāo)記當(dāng)前瀏覽器支持和不支持的特性恩尾。我們利用html標(biāo)簽上的類(lèi)名岭粤,就可以為不同版本的不同瀏覽器添加兼容樣式
9.postCSS
是一個(gè)基于JS插件的轉(zhuǎn)換樣式的工具。目標(biāo)是通過(guò)自定義插件和工具這樣的生態(tài)系統(tǒng)來(lái)改造CSS特笋。PostCSS把擴(kuò)展的語(yǔ)法和特性轉(zhuǎn)換成現(xiàn)代的瀏覽器友好的CSS剃浇。
5.一般在哪個(gè)網(wǎng)站查詢屬性兼容性?
[http://caniuse.com/](http://caniuse.com/)