瀏覽器兼容

什么是 CSS hack栓辜?

什么是CSS hack
由于不同廠商的流覽器或某瀏覽器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等)堂淡,對CSS的支持、解析不一樣刁绒,導致在不同瀏覽器的環(huán)境中呈現(xiàn)出不一致的頁面展現(xiàn)效果粘驰。這時氛赐,我們?yōu)榱双@得統(tǒng)一的頁面效果,就需要針對不同的瀏覽器或不同版本寫特定的CSS樣式剃根,我們把這個針對不同的瀏覽器/不同版本寫相應的CSS code的過程哩盲,叫做CSS hack!
CSS hack的原理
由于不同的瀏覽器和瀏覽器各版本對CSS的支持及解析結果不一樣,以及CSS優(yōu)先級對瀏覽器展現(xiàn)效果的影響狈醉,我們可以據(jù)此針對不同的瀏覽器情景來應用不同的CSS廉油。

談一談瀏覽器兼容的思路

要不要做:產品的角度(產品的受眾人群,受眾的瀏覽器比例苗傅,效果有限還是功能優(yōu)先)抒线,是否有必要為小部分人群兼容;
做到什么程度:瀏覽器的角度渣慕,要讓哪些瀏覽器支持哪些效果嘶炭;
如何做:根據(jù)兼容需求選擇兼容技術框架\庫和工具(JQuery,css reset,normalize,respond,html5shiv);使用條件注釋,css hack逊桦,js能力檢測做一些修補眨猎,


列舉5種以上瀏覽器兼容的寫法

  • html5shiv.js 讓IE等瀏覽器支持HTML5。
  • 條件注釋法
項目 范例 說明
! [if !IE] 非IE
lt(less than) [if lt IE 5.5] 小于IE 5.5
lte(equal) [if lte IE 6] 小于等于IE6
gt(great than) [if gt IE 5] 大于 IE5
gte [if gte IE 7] 大于等于IE7
  • 選擇器前綴法
*html  *前綴只對IE6生效
*+html *+前綴只對IE7生效
@media screen\9{...}只對IE6/7生效
@media \0screen {body { background: red; }}只對IE8有效
@media \0screen\,screen\9{body { background: blue; }}只對IE6/7/8有效
@media screen\0 {body { background: green; }} 只對IE8/9/10有效
@media screen and (min-width:0\0) {body { background: gray; }} 只對IE9/10有效
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只對IE10有效
  • 屬性前綴法
.box{
color: red;
_color: blue; /*ie6*/
*color: pink; /*ie67*/
color: yellow\9;  /*ie/edge 6-8*/
}
  • 使用Modernizr强经。Modernizr運行時會在html元素上添加一批CSS的class名稱睡陪,這些class名稱標記當前瀏覽器支持哪些特性和不支持哪些特性,支持的特性就直接使用該特性的名稱作為一個class,不支持的特性顯示的class是“no-特性名稱”兰迫。
    可以直接使用Modernizr在<html>元素里生成的class名稱信殊,在你的css文件里定義相應的屬性以便支持當前瀏覽器

以下工具/名詞是做什么的:

  • 條件注釋:HTML源碼中被IE有條件解釋的語句。條件注釋可被用來向IE提供及隱藏代碼逮矛。
  • IE Hack:使用特殊的符號或者方式寫出只有IE瀏覽器可以解析的代碼鸡号,如CSS屬性前綴法、選擇器前綴法以及IE條件注釋法
  • js 能力檢測:能力檢測的目標是識別瀏覽器的能力须鼎。使用這種方式無需顧及瀏覽器如何如何鲸伴,只需確定瀏覽器是否支持特定的能力,就可以給出相關的方案晋控。
  • html5shiv.js:解決一些瀏覽器不支持html5的一些新特性和標簽的問題汞窗。
  • respond.js:解決在做響應式網頁的時候一些瀏覽器不支持媒體查詢的問題。
  • css reset:重新定義樣式屬性赡译,將瀏覽器默認樣式覆蓋掉仲吏。
  • normalize.css:保護有用的瀏覽器默認樣式而不是完全去掉它們,修復瀏覽器自身的bug并保證各瀏覽器的一致性蝌焚,用一些小技巧優(yōu)化CSS可用性裹唆。相比于傳統(tǒng)的CSS reset,Normalize.css是一種現(xiàn)代的只洒、為HTML5準備的優(yōu)質替代方案许帐。
  • Modernizr:Modernizr會在頁面加載時自動檢測瀏覽器的特性,并html元素上添加一批CSS的class名稱毕谴,這些class名稱標記當前瀏覽器支持哪些特性和不支持哪些特性成畦。
  • postCSS:postCSS是一款通過JS插件來轉換CSS的工具。這些插件能幫你校驗你的CSS代碼涝开、轉換未來的CSS語法循帐、支持變量和混寫、以及內聯(lián)圖片等等舀武。

一般在哪個網站查詢屬性兼容性拄养?

caniuse.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市银舱,隨后出現(xiàn)的幾起案子瘪匿,更是在濱河造成了極大的恐慌,老刑警劉巖纵朋,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柿顶,死亡現(xiàn)場離奇詭異,居然都是意外死亡操软,警方通過查閱死者的電腦和手機嘁锯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人家乘,你說我怎么就攤上這事蝗羊。” “怎么了仁锯?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵耀找,是天一觀的道長。 經常有香客問我业崖,道長野芒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任双炕,我火速辦了婚禮狞悲,結果婚禮上,老公的妹妹穿的比我還像新娘妇斤。我一直安慰自己摇锋,他們只是感情好,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布站超。 她就那樣靜靜地躺著荸恕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪死相。 梳的紋絲不亂的頭發(fā)上融求,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機與錄音媳纬,去河邊找鬼双肤。 笑死施掏,一個胖子當著我的面吹牛钮惠,可吹牛的內容都是我干的。 我是一名探鬼主播七芭,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼素挽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了狸驳?” 一聲冷哼從身側響起预明,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耙箍,沒想到半個月后撰糠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡辩昆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年阅酪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡术辐,死狀恐怖砚尽,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情辉词,我是刑警寧澤必孤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站瑞躺,受9級特大地震影響敷搪,放射性物質發(fā)生泄漏。R本人自食惡果不足惜幢哨,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一购啄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘱么,春花似錦狮含、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冰评,卻和暖如春映胁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甲雅。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工解孙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抛人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓弛姜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親妖枚。 傳聞我的和親對象是個殘疾皇子廷臼,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內容