瀏覽器兼容問題

1.什么是 CSS hack?

由于不同廠商的瀏覽器呐伞,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一廠商的瀏覽器的不同版本慎式,如IE6和IE7伶氢,對CSS的解析認識不完全一樣,因此會導(dǎo)致生成的頁面效果不一樣瘪吏,得不到我們所需要的頁面效果癣防。這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能在不同的瀏覽器中也能得到我們想要的頁面效果掌眠。
CSS Hack大致有3種表現(xiàn)形式蕾盯,CSS屬性前綴法、選擇器前綴法以及IE條件注釋法(即HTML頭部引用if IE)Hack蓝丙,實際項目中CSS Hack大部分是針對IE瀏覽器不同版本之間的表現(xiàn)差異而引入的级遭。
屬性前綴法(即類內(nèi)部Hack):例如 IE6能識別下劃線"-"和星號" * ",IE7能識別星號" * "渺尘,但不能識別下劃線""挫鸽,IE6~IE10都認識"\9",但firefox前述三個都不能認識
選擇器前綴法(即選擇器Hack)
IE條件注釋法(即HTML條件注釋Hack):針對所有IE(注:IE10+已經(jīng)不再支持條件注釋): 鸥跟,針對IE6及以下版本:丢郊。這類Hack不僅對CSS生效,對寫在判斷語句里面的所有代碼都會生效医咨。

Paste_Image.png

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

1.要不要做
主要從兩個角度來進行考慮要不要做枫匾,一個是產(chǎn)品,一個是成本拟淮。從產(chǎn)品的受眾干茉、受眾的瀏覽器比例、效果優(yōu)先還是基本功能優(yōu)先這些方面來進行考慮惩歉,各個瀏覽器的兼容是否需要等脂,其次是兼容的成本問題俏蛮,即為了兼容付出的成本是否能取得收益。從產(chǎn)品和成本確定上遥,是否需要進行瀏覽器兼容搏屑。
2.做到什么程度
確定好要做兼容后,再進一步確定兼容到什么程度粉楚,只需要兼容主流瀏覽器辣恋,還是所有瀏覽器都兼容,對于IE瀏覽器需要兼容到IE11模软,還是兼容到IE6伟骨。第二步是需要確實兼容的范圍。
3.如何做
根據(jù)兼容需求選擇技術(shù)框架/庫(jquery)
根據(jù)兼容需求選擇兼容工具(html5shiv.js燃异、respond.js携狭、css resetnormalize.css回俐、Modernizr)
postCSS
條件注釋逛腿、CSS Hack、js 能力檢測做一些修補
兩種常見的瀏覽器兼容問題處理方式:
漸進增強(progressive enhancement): 針對低版本瀏覽器進行構(gòu)建頁面仅颇,保證最基本的功能单默,然后再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗忘瓦。
優(yōu)雅降級 (graceful degradation): 一開始就構(gòu)建完整的功能搁廓,然后再針對低版本瀏覽器進行兼容。

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

  • *耕皮, ie6,ie7可以識別境蜕;
  • _和- , ie6可以識別明场;
  • !important ,表示高優(yōu)先級汽摹,ie7及以上,firefox都支持苦锨,ie6認識帶!important的樣式屬性,但不認識!important的優(yōu)先級趴泌;
  • -webkit- 舟舒,針對safari,chrome瀏覽器的內(nèi)核CSS寫法
  • -moz-嗜憔,針對firefox瀏覽器的內(nèi)核CSS寫法
  • -ms-秃励,針對ie內(nèi)核的CSS寫法
  • -o-,針對Opera內(nèi)核的CSS寫法
  • CSS里可以給屬性或者選擇器寫hack吉捶。屬性例如:background:blue;_background:red;選擇器例如: html #demo {width:120px;} *+html #demo {width:130px;}
  • HTML 針對所有IE:

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

條件注釋

條件注釋 (conditional comment) 是于HTML源碼中被IE有條件解釋的語句夺鲜。條件注釋可被用來向IE提供及隱藏代碼皆尔。


<script>alert(1);</script>


使用了條件注釋的頁面在 Windows Internet Explorer 9 中可正常工作,但在 Internet Explorer 10 中無法正常工作币励。 IE10不再支持條件注釋慷蠕。

IE Hack

指的是IE瀏覽器漏洞,利用IE Hack食呻,我們可以兼容IE低版本流炕。

js 能力檢測

檢測當前瀏覽器支持和不支持的特性。如Modernizr.js,它會為瀏覽器的html標簽生成一批的css的class名稱仅胞,標記當前瀏覽器支持和不支持的特性每辟。我們利用html標簽上的類名,就可以為不同版本的不同瀏覽器添加兼容樣式

html5shiv.js

html5shiv.js主要解決HTML5提出的新的元素不被IE6-8識別干旧,這些新元素不能作為父節(jié)點包裹子元素渠欺,并且不能應(yīng)用CSS樣式。讓CSS 樣式應(yīng)用在未知元素上只需執(zhí)行 document.createElement(elementName) 即可實現(xiàn)椎眯。

respond.js

是一種css兼容工具峻堰。可在IE6~8(不支持css3)上模擬CSS3 Media Queries

css reset

強制重置瀏覽器默認樣式盅视。使得所有瀏覽器渲染頁面效果一致,但存在性能問題捐名。

normalize.css

Normalize.css 是一個可以定制的CSS文件,實現(xiàn)樣式重置的一種方式闹击,相對于其他的方式更有優(yōu)勢镶蹋,標準化的樣式,適用范圍廣的元素赏半。糾正錯誤和常見的瀏覽器的不一致性贺归。一些細微的改進,提高了易用性断箫。使用詳細的注釋來解釋代碼拂酣。

Modernizr

Modernizr是一個開源的JS庫,它使得那些基于訪客瀏覽器的不同(指對新標準支持性的差異)而開發(fā)不同級別體驗的設(shè)計師的工作變得更為簡單仲义。它使得設(shè)計師可以在支持[HTML5]和CSS3的特性進行開發(fā)婶熬,同時又不會犧牲其他不支持這些新技術(shù)的瀏覽器的控制。

PostCSS

它可以被理解為一個平臺埃撵,可以讓一些插件在上面跑赵颅,它提供了一個解析器,可以將CSS解析成抽象語法樹暂刘,通過PostCSS這個平臺饺谬,我們能夠開發(fā)一些插件,來處理CSS谣拣。熱門插件如autoprefixer募寨,它可以幫我們處理兼容問題族展,只需正常寫CSS,autoprefixer可以幫我的自動生成兼容性代碼.

5.一般在哪個網(wǎng)站查詢屬性兼容性拔鹰?

caniuse.com 查CSS屬性兼容

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仪缸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子格郁,更是在濱河造成了極大的恐慌腹殿,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件例书,死亡現(xiàn)場離奇詭異锣尉,居然都是意外死亡,警方通過查閱死者的電腦和手機决采,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門自沧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人树瞭,你說我怎么就攤上這事拇厢。” “怎么了晒喷?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵孝偎,是天一觀的道長。 經(jīng)常有香客問我凉敲,道長衣盾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任爷抓,我火速辦了婚禮势决,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蓝撇。我一直安慰自己果复,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布渤昌。 她就那樣靜靜地躺著虽抄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耘沼。 梳的紋絲不亂的頭發(fā)上极颓,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音群嗤,去河邊找鬼。 笑死兵琳,一個胖子當著我的面吹牛狂秘,可吹牛的內(nèi)容都是我干的骇径。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼者春,長吁一口氣:“原來是場噩夢啊……” “哼破衔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钱烟,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤晰筛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拴袭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體读第,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年拥刻,在試婚紗的時候發(fā)現(xiàn)自己被綠了怜瞒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡般哼,死狀恐怖吴汪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒸眠,我是刑警寧澤漾橙,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站楞卡,受9級特大地震影響霜运,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜臀晃,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一觉渴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧徽惋,春花似錦案淋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宦棺,卻和暖如春瓣距,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背代咸。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工蹈丸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鸦采。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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

  • 什么是 CSS hack CSS hack是通過在CSS樣式中加入一些特殊的符號闻伶,讓不同的瀏覽器識別不同的符號(什...
    怎么昵稱閱讀 383評論 0 1
  • 什么是css hack css hack 由于不同廠商的瀏覽器,比如Internet Explorer够话、 Safa...
    饑人谷_羅丹閱讀 357評論 0 0
  • 1.什么是 CSS hack蓝翰? 由于不同廠商的瀏覽器,比如internet explorer ,SAFARI,mo...
    _達斯基閱讀 600評論 0 0
  • 什么是 CSS hack由于不同廠商的瀏覽器女嘲,比如Internet Explorer,Safari,Mozilla...
    24_Magic閱讀 420評論 0 1
  • 幾年前澡为,協(xié)同新來的副總招聘漂坏,發(fā)現(xiàn)她總是很關(guān)注求職者的星座。 某次面試結(jié)束后問她:星座靠譜嗎媒至?她說有參考價值呀顶别!我淡...
    無色生香閱讀 1,635評論 6 73