一.什么是CSS hack。
瀏覽器兼容,不同的瀏覽器兼容性不同,對(duì)css的解析也不同,有些能夠識(shí)別一些特定的符號(hào)(例如IE67能識(shí)別* _)所以可以通過(guò)在一些css樣式里面加一些特定的符號(hào),讓不同的瀏覽器都能夠識(shí)別這個(gè)屬性。
二.談一談瀏覽器兼容的思路。
1.考慮產(chǎn)品的受眾,如果是政府等機(jī)關(guān)使用,則要考慮ie67等老瀏覽器的兼容,如果是比較年輕時(shí)髦的產(chǎn)品,則多注重新版本瀏覽器的兼容。
2.考慮成本以及老板的要求
3.要考慮具體兼容到哪些瀏覽器,哪個(gè)版本。
4.是選擇漸進(jìn)增加還是優(yōu)雅降級(jí)
5.根據(jù)瀏覽器的兼容選擇具體使用的框架,工具
三.列舉5種以上瀏覽器兼容的寫法
1.屬性前綴:color:red(ie6能識(shí)別和_,ie7能識(shí)別*)
2.選擇器前綴: *div{color:red}
3.color:yellow/9(ie6-8)
4.條件注釋
項(xiàng)目 范例 說(shuō)明
! [if !IE] 非IE
lt [if lt IE 5.5] 小于IE 5.5
lte [if lte IE 6] 小于等于IE6
gt [if gt IE 5] 大于 IE5
gte [if gte IE 7] 大于等于IE7
| [if (IE 6)|(IE 7)] IE6或者IE7
5.偽元素兼容:
.box:after{
content: "";
display: block;
clear: both;
}
.box{
*zoom: 1;
}
6.<!DOCTYPE html>
<html dir="ltr" lang="en-US" class="no-js">
四.以下工具/名詞是做什么的
1.條件注釋:可兼容于ie10以下的版本,通過(guò)對(duì)IE版本進(jìn)行條件的注釋來(lái)告訴瀏覽器渲染哪條屬性。
2.IE hack:針對(duì)IE瀏覽器編寫不同的CSS的讓IE能夠正常渲染的過(guò)程
3.js 能力檢測(cè):通過(guò)特定的文件對(duì)瀏覽器的能力進(jìn)行檢測(cè),從而得知該瀏覽器的兼容性,然后解決該瀏覽器兼容的辦法。
4,html5shiv.js:用于解決IE9以下版本瀏覽器對(duì)HTML5新增標(biāo)簽不識(shí)別,并導(dǎo)致CSS不起作用的問(wèn)題。
5.respond.js:Respond.js 是一個(gè)快速、輕量的 polyfill,用于為 IE6-8 以及其它不支持 CSS3 Media Queries 的瀏覽器提供媒體查詢的 min-width 和 max-width
6.css reset:Reset重置瀏覽器的css默認(rèn)屬性 瀏覽器的品種不同,樣式不同,然后重置,讓他們統(tǒng)一.
7.normalize.css:對(duì)幾乎所有的默認(rèn)樣式進(jìn)行重置,讓所有的瀏覽器上對(duì)于未定義的樣式瀏覽效果達(dá)到一致(雖然說(shuō)無(wú)法完全一致,但至少可以消除掉大部分差距)
8.Modernizr:Modernizr 使你可以方便地為各種情況編寫 JavaScript 和 CSS,無(wú)論瀏覽器是否支持這些特性。這是處理漸進(jìn)增強(qiáng)的完美方案。
Modernizr 會(huì)在頁(yè)面加載后立即檢測(cè)特性;然后創(chuàng)建一個(gè)包含檢測(cè)結(jié)果的 JavaScript 對(duì)象,同時(shí)在 html 元素加入方便你調(diào)整 CSS 的 class 名。
9.postCSS:它可以被理解為一個(gè)平臺(tái),可以讓一些插件在上面跑,它提供了一個(gè)解析器,可以將CSS解析成抽象語(yǔ)法樹(shù),通過(guò)PostCSS這個(gè)平臺(tái),我們能夠開(kāi)發(fā)一些插件,來(lái)處理CSS。熱門插件如autoprefixer,它可以幫我們處理兼容問(wèn)題,只需正常寫CSS,autoprefixer可以幫我的自動(dòng)生成兼容性代碼。
五.一般在哪個(gè)網(wǎng)站查詢屬性兼容性?
caniuse.com