瀏覽器兼容

用到的網(wǎng)站
瀏覽器市場份額
caniuse.com 查CSS屬性兼容
browserhacks 查 Hack 的寫法

1.什么是 CSS hack
由于不同廠商的瀏覽器惧笛,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一廠商的瀏覽器的不同版本逞泄,如IE6和IE7患整,對CSS的解析認識不完全一樣拜效,因此會導(dǎo)致生成的頁面效果不一樣,得不到我們所需要的頁面效果各谚。
CSS hack的目的就是使你的CSS代碼兼容不同的瀏覽器紧憾。這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能在不同的瀏覽器中也能得到我們想要的頁面效果昌渤。

2.談一談瀏覽器兼容的思路

  • 要不要做
    首先從做產(chǎn)品的角度考慮赴穗,在滿足要求的情況下產(chǎn)品的受眾是誰,例如政府部門PC所用瀏覽器多為IE67膀息,而像bilibili網(wǎng)站的受眾則是一些年輕人瀏覽器版本則高一些般眉,可以支持一些框架動畫特效等等。不同的受眾需求不同潜支,弄清是效果優(yōu)先還是基本功能優(yōu)先甸赃。

然后從成本的角度 考慮有無必要做某件事,例如給瀏覽器主要為IE67的受眾做網(wǎng)站冗酿,則一些css效果是無法實現(xiàn)的埠对,比如框圖圓角陰影等等,然而是否需要用加載圖片的方法去滿足這個效果裁替∠盥辏基本功能優(yōu)先的情況下是可以不用做這些事的。

  • 做到什么程度讓哪些瀏覽器支持哪些效果
    在了解清楚主體瀏覽器版本的情況下胯究,應(yīng)知道它們支持哪些效果稍计,可以做到什么程度。

  • 如何做根據(jù)兼容需求選擇技術(shù)框架/庫(jquery)
    根據(jù)兼容需求選擇兼容工具(html5shiv.js裕循、respond.js臣嚣、css resetnormalize.css剥哑、Modernizr)
    postCSS
    條件注釋硅则、CSS Hack、js 能力檢測做一些修補株婴。

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

 color:red; /* 所有瀏覽器可識別*/ 
_color:red; /* 僅IE6 識別 */
 *color:red; /* IE6怎虫、IE7 識別 */
 +color:red; /* IE6、IE7 識別 */ 
*+color:red; /* IE6困介、IE7 識別 */ 
[color:red; /* IE6大审、IE7 識別 */ 
color:red\9; /* IE6、IE7座哩、IE8徒扶、IE9 識別 */ 
color:red\0; /* IE8、IE9 識別*/
 color:red\9\0; /* 僅IE9識別 */ 
color:red \0; /* 僅IE9識別 */
 color:red!important; /* IE6 不識別!important*/```

```/* CSS選擇符級Hack */ 
*html #demo { color:red;} /* 僅IE6 識別 */
 *+html #demo { color:red;} /* 僅IE7 識別 */ 
body:nth-of-type(1) #demo { color:red;} /* IE9+根穷、FF3.5+姜骡、Chrome导坟、Safari、Opera 可以識別 */
 head:first-child+body #demo { color:red; } /* IE7+圈澈、FF惫周、Chrome、Safari康栈、Opera 可以識別 */ 
:root #demo { color:red\9; } : /* 僅IE9識別 */```

```/* IE條件注釋Hack */ 
<!--[if IE]>此處內(nèi)容只有IE可見<![endif]--> 
<!--[if IE 6]>此處內(nèi)容只有IE6.0可見<![endif]--> 
<!--[if IE 7]>此處內(nèi)容只有IE7.0可見<![endif]--> 
<!--[if !IE 7]>此處內(nèi)容只有IE7不能識別递递,其他版本都能識別,當(dāng)然要在IE5以上啥么。<![endif]--> 
<!--[if gt IE 6]> IE6以上版本可識別,IE6無法識別 <![endif]--> 
<!--[if gte IE 7]> IE7以及IE7以上版本可識別 <![endif]-->
 <!--[if lt IE 7]> 低于IE7的版本才能識別漾狼,IE7無法識別。 <![endif]-->
 <!--[if lte IE 7]> IE7以及IE7以下版本可識別<![endif]--> 
<!--[if !IE]>此處內(nèi)容只有非IE可見<![endif]-->```

[原文地址](http://www.ido321.com/938.html)

4.以下工具/名詞是做什么的
- 條件注釋 :條件注釋 (conditional comment) 是于HTML源碼中被IE有條件解釋的語句饥臂。條件注釋可被用來向IE提供及隱藏代碼逊躁。

- IE Hack使用特殊的符號或者方式寫出只有IE瀏覽器可以解析的代碼,有CSS屬性前綴法隅熙、選擇器前綴法以及IE條件注釋法
- js 能力檢測 :目標是識別瀏覽器的能力而不是識別特定的瀏覽器稽煤。只需根據(jù)瀏覽器支持的功能給出解決方案。

- html5shiv.js :是[JavaScript](https://zh.wikipedia.org/wiki/JavaScript)的一種備選方案囚戚。該方案在[Internet Explorer](https://zh.wikipedia.org/wiki/Internet_Explorer) 9版本中優(yōu)先啟用[HTML5](https://zh.wikipedia.org/wiki/HTML5)元素樣式酵熙,但不允許使用沒有由[JavaScript](https://zh.wikipedia.org/wiki/JavaScript)定義過的[元素](https://zh.wikipedia.org/wiki/HTML%E5%85%83%E7%B4%A0)樣式。

- respond.js :讓IE6-8支持[CSS3](https://www.baidu.com/s?wd=CSS3&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3njKBryN-m1ubPAfLrARL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWm1PWT1nW03PHRkrHfzrj0d) Media Query驰坊。

- css reset:重置樣式匾二, 讓各個瀏覽器的CSS樣式有一個統(tǒng)一的基準,而這個基準一般認為就是“清零”拳芙。

- normalize.css:保護有用的瀏覽器默認樣式而不是完全去掉它們察藐;一般化樣式:為大部分HTML元素提供;修復(fù)自身瀏覽器的bug并保證各瀏覽器的一致性舟扎;優(yōu)化CSS的可用性:用一些小技巧分飞;解釋代碼:用一些詳細的注釋和文檔來。

- Modernizr: 專為HTML5和CSS3開發(fā)的功能檢測類庫睹限。當(dāng)你在網(wǎng)頁中嵌入Modernizr的腳本時譬猫,它會檢測當(dāng)前瀏覽器是否支持CSS3的特性,比如 @font-face羡疗、border-radius染服、 border-image、box-shadow叨恨、rgba() 等柳刮,同時也會檢測是否支持HTML5的特性——比如audio、video、本地儲存诚亚、和新的 <input>標簽的類型和屬性等。在獲取到這些信息的基礎(chǔ)上午乓,可以在那些支持這些功能的瀏覽器上使用它們站宗,來決定是否創(chuàng)建一個基于JS的 fallback,或者對那些不支持的瀏覽器進行簡單的優(yōu)雅降級益愈。另外梢灭,Modernizr還可以令I(lǐng)E支持對HTML5的元素應(yīng)用CSS樣式,這樣開發(fā) 者就可以立即使用這些更富有語義化的標簽了蒸其。

- postCSS: 是一個使用 JS 插件來轉(zhuǎn)換 CSS 的工具敏释。這些插件可以支持使用變量,混入(mixin)摸袁,轉(zhuǎn)換未來的 CSS 語法钥顽,內(nèi)聯(lián)圖片等操作。ostCSS 的插件可以實現(xiàn)預(yù)處理器的功能靠汁;它們還可以優(yōu)化并且自動給代碼添加各種前綴蜂大;它們可以添加未來語法的支持,還可以提示代碼檢查的功能蝶怔,它們可以處理變量和代碼邏輯奶浦,可以提供完整的網(wǎng)格系統(tǒng);還可以提供代碼縮寫... ... 等各種各樣的操作踢星。

> CSS Reset 是革命黨澳叉,CSS Reset 里最激進那一派提倡不管你小子有用沒用,通通給我脫了那身衣服沐悦,憑什么你 body 出生就穿一圈 margin成洗,憑什么你姓 h 的比別人吃得胖,憑什么你 ul 戴一胳膊珠子藏否。于是 *{margin:0;} 等等運動泌枪,把人家全拍扁了★醯海看似是眾生平等了碌燕,實則是浪費了資源又占不到便宜,有求于人家的時候還得賤賤地給加回去继薛,實在需要人家的默認樣式了怎么辦修壕?人家鍋都扔爐子里燒了,自己看著辦吧遏考。Normalize.css 是改良派慈鸠。他們提倡,各個元素都有其存在的道理灌具,簡單粗暴地一視同仁是不好的青团。body 那一圈確實擠壓了頁面的生存空間譬巫,那就改掉。士農(nóng)工商督笆,誰有誰的作用芦昔,給他們制定個規(guī)范,確保他們在任何瀏覽器里都干好自己的活兒娃肿。

來源:[知乎](https://www.zhihu.com/question/20094066/answer/25004727)

5.一般在哪個網(wǎng)站查詢屬性兼容性咕缎?
[caniuse.com](http://caniuse.com/) 查CSS屬性兼容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市料扰,隨后出現(xiàn)的幾起案子凭豪,更是在濱河造成了極大的恐慌,老刑警劉巖晒杈,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫂伞,死亡現(xiàn)場離奇詭異,居然都是意外死亡拯钻,警方通過查閱死者的電腦和手機末早,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來说庭,“玉大人然磷,你說我怎么就攤上這事】浚” “怎么了姿搜?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捆憎。 經(jīng)常有香客問我舅柜,道長,這世上最難降的妖魔是什么躲惰? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任致份,我火速辦了婚禮,結(jié)果婚禮上础拨,老公的妹妹穿的比我還像新娘氮块。我一直安慰自己,他們只是感情好诡宗,可當(dāng)我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布滔蝉。 她就那樣靜靜地躺著,像睡著了一般塔沃。 火紅的嫁衣襯著肌膚如雪蝠引。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機與錄音螃概,去河邊找鬼矫夯。 笑死,一個胖子當(dāng)著我的面吹牛吊洼,可吹牛的內(nèi)容都是我干的训貌。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼融蹂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弄企?” 一聲冷哼從身側(cè)響起超燃,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拘领,沒想到半個月后意乓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡约素,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年届良,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片圣猎。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡士葫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出送悔,到底是詐尸還是另有隱情慢显,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布欠啤,位于F島的核電站荚藻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洁段。R本人自食惡果不足惜应狱,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祠丝。 院中可真熱鬧疾呻,春花似錦、人聲如沸写半。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽污朽。三九已至散吵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矾睦。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工晦款, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人枚冗。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓缓溅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赁温。 傳聞我的和親對象是個殘疾皇子坛怪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,781評論 2 361

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

  • 一、如何調(diào)試 IE 瀏覽器股囊? 在IE7以上的版本中可以通過按快捷鍵F12調(diào)出開發(fā)人員調(diào)試框袜匿,如下圖IE7以上調(diào)試工...
    dengpan閱讀 552評論 0 2
  • 一、問答部分 1. 如何調(diào)試 IE 瀏覽器 IE7及以上版本有調(diào)試臺稚疹,可以按F12啟動居灯。Paste_Image.p...
    _hello__world_閱讀 472評論 0 1
  • 1.如何調(diào)試 IE 瀏覽器 IE8以上有開發(fā)者工具(高版本的IE開發(fā)者工具兼容模式可以往下選擇兼容不同版本),F(xiàn)1...
    饑人谷_kule閱讀 421評論 0 0
  • 一内狗、如何調(diào)試 IE 瀏覽器 IE7以上版本自帶的開發(fā)者工具怪嫌,IE6可以用border的方法;例:IE11的開發(fā)者工...
    __Qiao閱讀 1,128評論 2 17
  • 做前端多年柳沙,雖然不是經(jīng)常需要hack岩灭,但是我們經(jīng)常會遇到各瀏覽器表現(xiàn)不一致的情況÷咐穑基于此川背,某些情況我們會極不情愿的...
    大女表哥閱讀 1,093評論 0 9