瀏覽器兼容

什么是 CSS hack?

由于不同廠商的瀏覽器阳啥,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一廠商的瀏覽器的不同版本,如IE6和IE7彭谁,對(duì)CSS的解析認(rèn)識(shí)不完全一樣,因此會(huì)導(dǎo)致生成的頁(yè)面效果不一樣允扇,得不到我們所需要的頁(yè)面效果缠局。這個(gè)時(shí)候我們就需要針對(duì)不同的瀏覽器去寫(xiě)不同的CSS,讓它能在不同的瀏覽器中也能得到我們想要的頁(yè)面效果考润。

談一談瀏覽器兼容的思路

  • 要不要做
    • 產(chǎn)品的角度(產(chǎn)品的受眾狭园、受眾的瀏覽器比例、效果優(yōu)先還是基本功能優(yōu)先)
    • 成本的角度 (有無(wú)必要做某件事)
  • 做到什么程度
    • 讓哪些瀏覽器支持哪些效果
  • 如何做

兩種方法
漸進(jìn)增強(qiáng)(progressive enhancement): 針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面抑胎,保證最基本的功能燥滑,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果、交互等改進(jìn)和追加功能達(dá)到更好的用戶體驗(yàn)
優(yōu)雅降級(jí) (graceful degradation): 一開(kāi)始就構(gòu)建完整的功能阿逃,然后再針對(duì)低版本瀏覽器進(jìn)行兼容铭拧。
參考stackoverflow-漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)的區(qū)別

列舉5種以上瀏覽器兼容的寫(xiě)法

  • 條件注釋
     <!--[if IE 6]>
    <p>You are using Internet Explorer 6.</p>
    <![endif]-->
    <!--[if !IE]><!-->
    <script>alert(1);</script>
    <!--<![endif]-->
    <!--[if IE 8]>
    <link href="ie8only.css" rel="stylesheet">
    <![endif]-->

范例

HTML

<!DOCTYPE html>
<!--[if IEMobile 7 ]> <html dir="ltr" lang="en-US"class="no-js iem7"> <![endif]-->
<!--[if lt IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7 ]>    <html dir="ltr" lang="en-US" class="no-js ie7 oldie"> <![endif]-->

CSS

.box{
  color:red;
}

.ie7 .box{
  color:blue;
}

當(dāng)IE7打開(kāi)時(shí) .box的字體就為藍(lán)色,因?yàn)闂l件注釋為html加了一個(gè)class=“no-js ie7 oldie”

  • CSS屬性前綴法
.box{
  color: red;
  _color: blue; /*ie6*/
  *color: pink; /*ie67*/
  color: yellow\9;  /*ie/edge 6-8*/
}

  • 選擇器前綴法
    目前最常見(jiàn)的
    *html *前綴只對(duì)IE6生效
    *+html *+前綴只對(duì)IE7生效
    @media screen\9{...}只對(duì)IE6/7生效
    @media \0screen {body { background: red; }}只對(duì)IE8有效
    @media \0screen\,screen\9{body { background: blue; }} 只對(duì)IE6/7/8有效
    @media screen\0 {body { background: green; }} 只對(duì)IE8/9/10有效
    @media screen and (min-width:0\0) {body { background: gray; }} 只對(duì)IE9/10有效

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

條件注釋

條件注釋 (conditional comment) 是于HTML源碼中被IE有條件解釋的語(yǔ)句恃锉。條件注釋可被用來(lái)向IE提供及隱藏代碼搀菩。

IE Hack

使用特殊的符號(hào)或者方式寫(xiě)出只有IE瀏覽器可以解析的代碼,有CSS屬性前綴法破托、選擇器前綴法以及IE條件注釋法

js 能力檢測(cè)

用js檢測(cè)瀏覽器對(duì)屬性是否支持一些特定的屬性

html5shiv.js

HTML5 Shiv可以在舊版Internet Explorer中使用HTML5部分元素肪跋,并為Internet Explorer 6-9,Safari 4.x(和iPhone 3.x)和Firefox 3.x提供基本的HTML5樣式土砂。

respond.js

讓不支持css3 Media Query的瀏覽器包括IE6-IE8等其他瀏覽器支持媒體查詢州既。

css reset

通過(guò)重新定義標(biāo)簽樣式谜洽,“覆蓋”瀏覽器默認(rèn)的css樣式

normalize.css

Normalize.css 只是一個(gè)很小的CSS文件,但它在默認(rèn)的HTML元素樣式上提供了跨瀏覽器的高度一致性吴叶。相比于傳統(tǒng)的CSS Reset阐虚,Normalize.css是一種現(xiàn)代的、為HTML5準(zhǔn)備的優(yōu)質(zhì)替代方案蚌卤。Normalize.css現(xiàn)在已經(jīng)被用于Twitter Bootstrap实束、HTML5 Boilerplate、GOV.UK造寝、Rdio磕洪、CSS Tricks 以及許許多多其他框架、工具和網(wǎng)站上诫龙。

Modernizr

Modernizr是一個(gè)JavaScript庫(kù)析显,可以檢測(cè)用戶瀏覽器中的HTML5和CSS3功能。

postCSS

PostCSS是一款通過(guò)JS插件來(lái)轉(zhuǎn)換CSS的工具签赃。這些插件能幫你校驗(yàn)?zāi)愕腃SS代碼谷异、轉(zhuǎn)換未來(lái)的CSS語(yǔ)法、支持變量和混寫(xiě)锦聊、以及內(nèi)聯(lián)圖片等等歹嘹。

一般在哪個(gè)網(wǎng)站查詢屬性兼容性?

http://caniuse.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末孔庭,一起剝皮案震驚了整個(gè)濱河市尺上,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌圆到,老刑警劉巖怎抛,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異芽淡,居然都是意外死亡马绝,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)挣菲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)富稻,“玉大人,你說(shuō)我怎么就攤上這事白胀⊥指常” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵或杠,是天一觀的道長(zhǎng)纹份。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么蔓涧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮笋额,結(jié)果婚禮上元暴,老公的妹妹穿的比我還像新娘。我一直安慰自己兄猩,他們只是感情好茉盏,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著枢冤,像睡著了一般鸠姨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淹真,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天讶迁,我揣著相機(jī)與錄音,去河邊找鬼核蘸。 笑死巍糯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的客扎。 我是一名探鬼主播祟峦,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼徙鱼!你這毒婦竟也來(lái)了宅楞?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤袱吆,失蹤者是張志新(化名)和其女友劉穎厌衙,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體杆故,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡迅箩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了处铛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饲趋。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖撤蟆,靈堂內(nèi)的尸體忽然破棺而出奕塑,到底是詐尸還是另有隱情,我是刑警寧澤家肯,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布龄砰,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏换棚。R本人自食惡果不足惜式镐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望固蚤。 院中可真熱鬧娘汞,春花似錦、人聲如沸夕玩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)燎孟。三九已至禽作,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揩页,已是汗流浹背旷偿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碍沐,地道東北人狸捅。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像累提,于是被迫代替她去往敵國(guó)和親尘喝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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