瀏覽器兼容

什么是瀏覽器兼容問題

同一份代碼括荡,有的瀏覽器效果正常疏遏,有的不正常

為什么會(huì)有瀏覽器兼容問題
  • 同一產(chǎn)品,版本越老 bug 越多
  • 同一產(chǎn)品目养,版本越新俩由,功能越多
  • 不同產(chǎn)品,不同標(biāo)準(zhǔn)癌蚁,不同實(shí)現(xiàn)方式
處理兼容問題的思路
  • 要不要做
    • 產(chǎn)品的角度(產(chǎn)品的受眾幻梯、受眾的瀏覽器比例、效果優(yōu)先還是基本功能優(yōu)先)
    • 成本的角度(有無(wú)必要做某件事)
  • 做到什么程度
    • 讓哪些瀏覽器支持哪些效果
  • 如何做
    • 根據(jù)兼容需求選擇技術(shù)框架/庫(kù)(jquery)
    • 根據(jù)兼容需求選擇兼容工具(html5shiv.js努释、respond.js碘梢、css reset、normalize.css伐蒂、Modernizr)
    • postCSS
    • 條件注釋煞躬、CSS Hack、js能力檢測(cè)做一些修補(bǔ)
漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)
  • 漸進(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):一開始就構(gòu)建完整的功能缕减,然后再針對(duì)低版本瀏覽器進(jìn)行兼容雷客。

處理兼容問題的手段

合適的框架
  1. Bootstrap (>=ie8)
  2. jQuery 1 (>=ie6), jQuery2 (>=ie9)
  3. Vue (>=ie9)
  4. ...
條件注釋

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

 <!--[if IE 6]>//如果是IE6佛纫,下面的<p>生效
    <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]-->

使用了條件注釋的頁(yè)面在Windows Internet Explorer 9 中可以正常工作,但在 Internet Exploroer 10中無(wú)法正常工作总放。

CSS hack
  • 由于不同廠商的瀏覽器呈宇,比如Internet Explorer,Safari局雄,Mozilla Firefox甥啄,Chrome等,或者是同一廠商的瀏覽器的不同版本炬搭,如IE6和IE7蜈漓,對(duì)CSS的解析認(rèn)識(shí)不完全一樣穆桂,因此會(huì)導(dǎo)致生成的頁(yè)面效果不一樣,得不到我們所需要的頁(yè)面效果融虽。
  • 這個(gè)時(shí)候我們需要針對(duì)不同的瀏覽器去寫不同的CSS享完,讓它能在不同的瀏覽器中也能得到我們想要的頁(yè)面效果。
  • CSS Hack大致有3種表現(xiàn)形式有额,css屬性前綴法般又、選擇器前綴法以及IE條件注釋法(即HTML頭部引用if IE)Hack,實(shí)際項(xiàng)目中CSS Hack大部分是針對(duì)IE瀏覽器不同版本之間的表現(xiàn)差異而引入的巍佑。
  1. 屬性前綴法(即內(nèi)部Hack):例如IE6能識(shí)別下劃線和星號(hào)茴迁,IE7能識(shí)別星號(hào),但不能識(shí)別下劃線萤衰,IE6 - IE10都認(rèn)識(shí)"\9",但firefox前述三個(gè)都不認(rèn)識(shí)
  2. 選擇器法前綴(即選擇器Hack)
  3. IE條件注釋法(即HTML條件注釋Hack):針對(duì)所有IE(注:IE10+已經(jīng)不再支持條件注釋): 堕义,針對(duì)IE6及以下版本:。這類Hack不僅對(duì)CSS生效脆栋,對(duì)寫在判斷語(yǔ)句里面的所有代碼都會(huì)生效
常見Hack寫法
.box{
  color: red;
  _color: blue; /*ie6*/
  *color: pink; /*ie67*/
  color: yellow\9;  /*ie/edge 6-8*/
}
<!–-[if IE 7]>
<link rel="stylesheet" href="ie7.css" type="text/css" />
<![endif]–->
常見屬性的兼容情況
  • inline-block:>=ie8
  • min-width/min-height:>=ie8
  • :before, :after:>=ie8
  • div:hover:>=ie7
  • inline-block:>=ie8
  • background-size:>=ie9
  • 圓角:>=ie9
  • 陰影:>=ie9
  • 動(dòng)畫/漸變:>= ie10
常見兼容處理范例
.target{
  display: inline-block;
  *display: inline;
  *zoom: 1; //生成一個(gè)類似BFC的效果倦卖,可以添加寬高,相當(dāng)于inline-block
}
常見兼容處理范例
.clearfix:after{
  content: '';
  display: block;
  clear: both;
}
.clearfix{
  *zoom: 1; /* 僅對(duì)ie67有效 */
}
常見兼容處理范例
<!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
<!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]-->
<!--[if IE 8 ]>    <html dir="ltr" lang="en-US" class="no-js ie8 oldie"> <![endif]-->
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html dir="ltr" lang="en-US" class="no-js"><!--<![endif]-->

需要用到的網(wǎng)站

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末椿争,一起剝皮案震驚了整個(gè)濱河市糖耸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丘薛,老刑警劉巖嘉竟,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異洋侨,居然都是意外死亡舍扰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門希坚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)边苹,“玉大人,你說我怎么就攤上這事裁僧「鍪” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵聊疲,是天一觀的道長(zhǎng)茬底。 經(jīng)常有香客問我,道長(zhǎng)获洲,這世上最難降的妖魔是什么阱表? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上最爬,老公的妹妹穿的比我還像新娘涉馁。我一直安慰自己,他們只是感情好爱致,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布烤送。 她就那樣靜靜地躺著,像睡著了一般糠悯。 火紅的嫁衣襯著肌膚如雪胯努。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天逢防,我揣著相機(jī)與錄音,去河邊找鬼蒲讯。 笑死忘朝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的判帮。 我是一名探鬼主播局嘁,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晦墙!你這毒婦竟也來(lái)了悦昵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晌畅,失蹤者是張志新(化名)和其女友劉穎但指,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抗楔,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棋凳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了连躏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剩岳。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖入热,靈堂內(nèi)的尸體忽然破棺而出拍棕,到底是詐尸還是另有隱情,我是刑警寧澤勺良,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布绰播,位于F島的核電站,受9級(jí)特大地震影響尚困,放射性物質(zhì)發(fā)生泄漏幅垮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忙芒。 院中可真熱鬧示弓,春花似錦、人聲如沸呵萨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)潮峦。三九已至囱皿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忱嘹,已是汗流浹背嘱腥。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拘悦,地道東北人齿兔。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像础米,于是被迫代替她去往敵國(guó)和親分苇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • 做前端多年屁桑,雖然不是經(jīng)常需要hack医寿,但是我們經(jīng)常會(huì)遇到各瀏覽器表現(xiàn)不一致的情況∧⒏基于此靖秩,某些情況我們會(huì)極不情愿的...
    大女表哥閱讀 1,092評(píng)論 0 9
  • 一、如何調(diào)試 IE 瀏覽器竖瘾? 在IE7以上的版本中可以通過按快捷鍵F12調(diào)出開發(fā)人員調(diào)試框盆偿,如下圖IE7以上調(diào)試工...
    dengpan閱讀 548評(píng)論 0 2
  • 一、如何調(diào)試 IE 瀏覽器 IE7以上版本自帶的開發(fā)者工具准浴,IE6可以用border的方法事扭;例:IE11的開發(fā)者工...
    __Qiao閱讀 1,127評(píng)論 2 17
  • 一、問答部分 1. 如何調(diào)試 IE 瀏覽器 IE7及以上版本有調(diào)試臺(tái)乐横,可以按F12啟動(dòng)求橄。Paste_Image.p...
    _hello__world_閱讀 464評(píng)論 0 1
  • CSS Hack 不同的瀏覽器對(duì)某些CSS代碼解析會(huì)存在一定的差異,因此就會(huì)導(dǎo)致不同瀏覽器下給用戶展示的頁(yè)面效果不...
    zx9426閱讀 386評(píng)論 0 0