瀏覽器兼容

CSS hack

由于不同廠商的流覽器或某瀏覽器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等)侨赡,對CSS的支持模她、解析不一樣咐蝇,導(dǎo)致在不同瀏覽器的環(huán)境中呈現(xiàn)出不一致的頁面展現(xiàn)效果授帕。這時特姐,我們?yōu)榱双@得統(tǒng)一的頁面效果晶丘,就需要針對不同的瀏覽器或不同版本寫特定的CSS樣式,我們把這個針對不同的瀏覽器/不同版本寫相應(yīng)的CSS code的過程唐含,叫做CSS hack!

瀏覽器兼容的思路

  1. 根據(jù)用戶瀏覽器使用情況考慮要不要做
  2. 需要適配哪些瀏覽器以及相應(yīng)的版本
  3. 不同瀏覽器上的顯示效果不一樣浅浮,做到哪種程度 //因為有些屬性某些瀏覽器并不支持
  4. 選擇需要的兼容工具

瀏覽器兼容的寫法

CSS屬性前綴法:

.container{
  _color: red;/*IE6識別*/
  *color: red;/*IE6,IE7識別*/
  color: red\9;/*IE6-IE10識別*/
  color: red\0;/*IE8-IE10識別*/
  color: red\9\0;/*IE9,IE10識別*/
  }

選擇器前綴法:

*html{}/*只對IE6生效*/
*+html{}/*只對IE7生效*/
@media screen\9{...}  //IE6-7生效

IE條件注釋法(即HTML頭部引用if IE):

CSS3選擇器結(jié)合JavaScript

irefox 瀏覽器css hack

@-moz-document url-prefix() { 

.selector { property: value; } 

}    

支持所有Gecko內(nèi)核的瀏覽器 (包括Firefox)

*>.selector { property: value; } 

Webkit 內(nèi)核瀏覽器 css hack

@media screen and (-webkit-min-device-pixel-ratio: 0) { 

Selector { property: value;  } 

}

Opera 瀏覽器css hack

html:first-child>b\ody Selector {property:value;} 

@media all and (-webkit-min-device-pixel-ratio:10000),not and all (-webkit-min-device-pixel-ratio:0) { .font1 {color:red;} }

Webkit 內(nèi)核瀏覽器 css hack和Opera 瀏覽器css hack

@media all and (min-width:0px){ .font1 {color:red;} }

解釋

條件注釋

以小于符號+嘆號+兩個減號開始 兩個減號大于符號結(jié)束構(gòu)成(字符均為英文小寫輸入),而注解注釋內(nèi)容放入其中捷枯。

它會根據(jù)瀏覽器的不同選擇性地給<html>標(biāo)記添加(或不添加)一個包含瀏覽器版本信息的class屬性滚秩。

IE Hack

<!--[if !IE]>除IE外都可識別<![endif]--> 
<!--[if IE]> 所有的IE可識別 <![endif]-->
<!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以識別 <![endif]--> 
<!--[if IE 6]> 僅IE6可識別 <![endif]--> 
<!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]--> 
<!--[if gte IE 6]> IE6以及IE6以上版本可識別 <![endif]--> 
<!--[if IE 7]> 僅IE7可識別 <![endif]--> 
<!--[if lt IE 7]> IE7以及IE7以下版本可識別 <![endif]--> 
<!--[if gte IE 7]> IE7以及IE7以上版本可識別 <![endif]-->

JS 能力檢測

瀏覽器提供商雖然在實現(xiàn)公共接口方面投入了很多精力,但結(jié)果仍然是每一種瀏覽器都有各自
的長處淮捆,也都有各自的缺點郁油。即使是那些跨平臺的瀏覽器本股,雖然從技術(shù)上看版本相同,也照
樣存在不一致性問題已艰。

能力檢測的目標(biāo)不是識別特定的瀏覽器痊末,而是識別瀏覽器的能力。采用這種方式不必顧及特定的瀏覽器如何如何哩掺,只要確定瀏覽器支持特定的能力凿叠,就可以給出解決方案。

能力檢測的基本模式如下:

if(object.property) {
//存在該屬性或方法嚼吞,使用object.property
}

html5shiv.js

ie低版本不支持html5標(biāo)簽盒件,可以引入一段腳本,在ie瀏覽器中創(chuàng)建html5的標(biāo)簽舱禽。

HTML5 Shiv是JavaScript的一種備選方案炒刁。該方案在Internet Explorer 9版本中優(yōu)先啟用HTML5元素樣式,但不允許使用沒有由JavaScript定義過的元素樣式誊稚。

維基百科

respond.js

Respond.js讓不支持css3 Media Query的瀏覽器包括IE6-IE8等其他瀏覽器支持查詢翔始。

就是說在IE6~8瀏覽器中兼容響應(yīng)式布局。

css reset

所有的 HTML 標(biāo)簽在沒有設(shè)置樣式時均被瀏覽器默認(rèn)的樣式列表所裝飾 (不同瀏覽器默認(rèn)樣式有所不同)里伯。CSS 的樣式重置就是清楚瀏覽器的默認(rèn)樣式 城瞎,可以理解為對于全局的樣式定義。

通過為幾乎所有的元素施加默認(rèn)樣式疾瓮,強行使得元素有相同的視覺效果脖镀。

Normalize.css

保護有用的瀏覽器默認(rèn)樣式而不是完全去掉它們

一般化的樣式:為大部分HTML元素提供

修復(fù)瀏覽器自身的bug并保證各瀏覽器的一致性

優(yōu)化CSS可用性:用一些小技巧

Modernizr

Modernizr是一套JavaScript 庫,用來偵測瀏覽器是否支持HTML5與CSS3等規(guī)格狼电。如果瀏覽器不支持蜒灰,Modernizr會使用其他的解決方法來進行模擬。

許多HTML5與CSS 3的功能已經(jīng)在許多主流的瀏覽器中實現(xiàn)出來肩碟。Modernizr能夠告訴開發(fā)者强窖,瀏覽器是否已經(jīng)實現(xiàn)他們想要的功能。這讓開發(fā)者在瀏覽器上可以充分利用這些新功能削祈,或者嘗試制作解決方案來支持那些老舊的瀏覽器翅溺。

維基百科

PostCSS

PostCSS 使用 JavaScript 代碼來轉(zhuǎn)換 CSS 中的樣式。PostCSS 通過不同的插件來支持對 CSS 的不同處理岩瘦。PostCSS 的插件可以完成各種不同的功能,如支持變量和混入窿撬,支持未來的 CSS 語法和添加瀏覽器特定前綴等启昧。

IBM

屬性兼容性

caniuse

caniuse.com是一個工具性的網(wǎng)站,幫助人們了解各個瀏覽器以及它們的不同版本對HTML5劈伴、CSS3等高級特性的支持情況密末,幫助網(wǎng)站設(shè)計人員根據(jù)網(wǎng)站針對的用戶有選擇的使用web設(shè)計高級特性握爷,提高用戶體驗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末严里,一起剝皮案震驚了整個濱河市新啼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刹碾,老刑警劉巖燥撞,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異迷帜,居然都是意外死亡物舒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門戏锹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冠胯,“玉大人,你說我怎么就攤上這事锦针≤欤” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵奈搜,是天一觀的道長悉盆。 經(jīng)常有香客問我,道長媚污,這世上最難降的妖魔是什么舀瓢? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮耗美,結(jié)果婚禮上京髓,老公的妹妹穿的比我還像新娘。我一直安慰自己商架,他們只是感情好堰怨,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛇摸,像睡著了一般备图。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赶袄,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天揽涮,我揣著相機與錄音,去河邊找鬼饿肺。 笑死蒋困,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的敬辣。 我是一名探鬼主播雪标,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼零院,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了村刨?” 一聲冷哼從身側(cè)響起告抄,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嵌牺,沒想到半個月后打洼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡髓梅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年拟蜻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枯饿。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡酝锅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出奢方,到底是詐尸還是另有隱情搔扁,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布蟋字,位于F島的核電站稿蹲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鹊奖。R本人自食惡果不足惜苛聘,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忠聚。 院中可真熱鬧设哗,春花似錦、人聲如沸两蟀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赂毯。三九已至战虏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間党涕,已是汗流浹背烦感。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留膛堤,地道東北人手趣。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像骑祟,于是被迫代替她去往敵國和親回懦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1.什么是 CSS hack CSS hack由于不同廠商的瀏覽器次企,比如Internet Explorer,Saf...
    Ghj_小樹閱讀 422評論 2 5
  • 1.什么是 CSS hack怯晕? 以下是引自百度文庫的定義: 簡單地講,css hack指各版本及各品牌瀏覽器之間對...
    饑人谷_Young丶K閱讀 383評論 0 6
  • 什么是 CSS hack 引自百度百科的定義: CSS hack由于不同廠商的瀏覽器缸棵,比如Internet Exp...
    肥魚666閱讀 151評論 0 0
  • 什么是 CSS hack CSS hack是通過在CSS樣式中加入一些特殊的符號舟茶,讓不同的瀏覽器識別不同的符號(什...
    怎么昵稱閱讀 383評論 0 1
  • 什么是 CSS hack? 基礎(chǔ)概念 由于不同廠商的瀏覽器堵第,比如Internet Explorer,Safari,...
    Sketch閱讀 288評論 0 0