瀏覽器兼容問(wèn)題

什么是瀏覽器的兼容問(wèn)題:

同一份代碼有的瀏覽器效果正常,有的不正常。由于不同的瀏覽器對(duì)CSS的支持及解析結(jié)果不一樣,因此會(huì)導(dǎo)致生成的頁(yè)面效果不一樣,得不到我們所需要的頁(yè)面效果

不正常的原因:

1掖蛤、瀏覽器不支持,新屬性井厌、框架
2蚓庭、同一瀏覽器產(chǎn)品,版本越老bug越多
3仅仆、同一瀏覽器產(chǎn)品器赞,版本越新,功能越多
4墓拜、不同瀏覽器產(chǎn)品港柜,不同標(biāo)準(zhǔn),不同實(shí)現(xiàn)方式

什么是 CSS hack

CSS hack是通過(guò)在CSS樣式中加入一些特殊的符號(hào)咳榜,讓不同的瀏覽器識(shí)別不同的符號(hào)(什么樣的瀏覽器識(shí)別什么樣的符號(hào)是有標(biāo)準(zhǔn)的夏醉,CSS hack就是讓你記住這個(gè)標(biāo)準(zhǔn)),以達(dá)到應(yīng)用不同的CSS樣式的目的涌韩,比如.kwstu{width:300px;_width:200px;}畔柔,一般瀏覽器會(huì)先給元素使用width:300px;的樣式,緊接著后面還有個(gè)_width:200px;由于下劃線(xiàn)_width只有IE6可以識(shí)別臣樱,所以此樣式在IE6中實(shí)際設(shè)置對(duì)象的寬度為200px靶擦,后面的把前面的給覆蓋了腮考,而其他瀏覽器不識(shí)別_width不會(huì)執(zhí)行_width:200px;這句樣式,所以在其他瀏覽器中設(shè)置對(duì)象的寬度就是300px;
簡(jiǎn)單地講玄捕,css hack指各版本及各品牌瀏覽器之間對(duì)CSS解釋后出現(xiàn)網(wǎng)頁(yè)內(nèi)容的誤差(比如我們常說(shuō)錯(cuò)位)的處理秸仙。由于各瀏覽器的內(nèi)核不同,所以會(huì)造成一些誤差就像JS一樣桩盲,一個(gè)JS網(wǎng)頁(yè)特效,在微軟IE6席吴、IE7赌结、IE8瀏覽器有效果,但可能在火狐(Mozilla Firefox)谷歌瀏覽器無(wú)效孝冒,這樣就叫做JS hack 柬姚,所以我們對(duì)于CSS來(lái)說(shuō)他們來(lái)解決各瀏覽器對(duì)CSS解釋不同所采取的區(qū)別不同瀏覽器制作不同的CSS樣式的設(shè)置來(lái)解決這些問(wèn)題就叫作CSS Hack。

瀏覽器識(shí)別字符標(biāo)準(zhǔn)對(duì)應(yīng)表如下圖:

ie.png

從上圖可以分析出以下幾種情況:
1庄涡、大部分特殊字符IE瀏覽器支持量承,其他主流瀏覽器firefox,chrome穴店,opera撕捍,safari不支持 (opera可識(shí)別除外)。
2泣洞、\9 :所有IE瀏覽器都支持
3忧风、_和- :僅IE6支持
4、* :IE6球凰、E7支持
5狮腿、\0 :IE8、IE9支持呕诉,opera部分支持
6缘厢、\9\0 :IE8部分支持、IE9支持
7甩挫、\0\9 :IE8贴硫、IE9支持

IE瀏覽器下hack總結(jié)

element{
color:#666\9; //IE8 IE9
* color:#999伊者; //IE7
_color:#EBEBEB夜畴; //IE6
}
可以看出,利用字符識(shí)別無(wú)法區(qū)分IE8和IE9删壮,我們可以從偽類(lèi)的識(shí)別來(lái)區(qū)分
element{
color:#666\9贪绘; //IE8
* color:#999; //IE7
_color:#EBEBEB央碟; //IE6
}
:root element{color:#666\9;}//IE9
【說(shuō)明】:“:root”偽類(lèi)IE系列只有IE9支持税灌,其他主流瀏覽器均支持均函,利用這一點(diǎn)來(lái)區(qū)分IE8和IE9。另外考慮到opera部分支持菱涤,完全支持:root,所以不使用苞也。

談一談瀏覽器兼容的思路

1、從產(chǎn)品的角度和成本的角度來(lái)判斷要不要做瀏覽器兼容

產(chǎn)品的受眾粘秆?受眾使用的瀏覽器的比例如迟。產(chǎn)品的效果優(yōu)先還是基本功能優(yōu)先?以及你做這件事情的成本攻走,時(shí)間成本等來(lái)判斷是否要做這件事情殷勘。

2、如果做的話(huà)要做到什么程度昔搂?

你要考慮讓那些瀏覽器支持哪些效果玲销。

3、如何做摘符?

根據(jù)兼容需求選擇技術(shù)框架贤斜、庫(kù)(jQuery。逛裤。瘩绒。。)
根據(jù)兼容需求選擇兼容工具(html5shiv.js带族、respond.js草讶、css resetnormalize.css炉菲、Modernizr)
postCSS
條件注釋堕战、CSS Hack、js 能力檢測(cè)做一些修補(bǔ)

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

1.區(qū)別IE和非IE瀏覽器
#tip{
background:blue;/非IE背景藍(lán)色 因?yàn)樗袨g覽器都能解釋/
background:red\9;/IE6拍霜、IE7嘱丢、IE8、IE9背景紅色 因?yàn)閈9在IE6.7.8.9中可以識(shí)別祠饺,覆蓋上面樣式 IE10跟11應(yīng)該不識(shí)別越驻,IE11測(cè)試確定/
}
2.區(qū)別IE6,IE7,IE8,FF
【區(qū)別符號(hào)】:“\9”、“”道偷、“_”
#tip{
background:blue;/
Firefox背景變藍(lán)色 所有瀏覽器都支持/
background:red\9;/
IE8背景變紅色 IE6缀旁、7、8勺鸦、9支持覆蓋上面樣式/
background:black;/IE7背景變黑色 IE6并巍、7支持又一次覆蓋上面樣式
/
_background:orange;/IE6背景變橘色 緊IE6支持又一次覆蓋上面樣式/
}
3、條件注釋法:


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

4换途、屬性前綴法:
inline-block: >=ie8
min-width/min-height: >=ie8
:before,:after: >=ie8
div:hover: >=ie7
inline-block: >=ie8
background-size: >=ie9
5懊渡、CSS Reset
:link,:visited { text-decoration:none }
ul,ol { list-style:none }
h1,h2,h3,h4,h5,h6,pre,code { font-size:1em; }
ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,
fieldset,input{ margin:0; padding:0 }
a img,:link img,:visited img { border:none }
address { font-style:normal }

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

條件注釋

條件注釋 (conditional comment) 是于HTML源碼中被 Microsoft Internet Explorer 有條件解釋的語(yǔ)句刽射。條件注釋可被用來(lái)向 Internet Explorer 提供及隱藏代碼

IE Hack

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

js 能力檢測(cè)

使用JS的語(yǔ)法檢測(cè)瀏覽器支持的屬性誓禁,以便展示效果

html5shiv.js

用于解決IE9以下版本瀏覽器對(duì)HTML5新增標(biāo)簽不識(shí)別,并導(dǎo)致CSS不起作用的問(wèn)題肾档。

respond.js

讓不支持css3 Media Query的瀏覽器包括IE6-IE8等其他瀏覽器支持查詢(xún)摹恰。

css reset

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

normalize.css

Normalize.css 只是一個(gè)很小的CSS文件怒见,但它在默認(rèn)的HTML元素樣式上提供了跨瀏覽器的高度一致性俗慈。相比于傳統(tǒng)的CSS reset,Normalize.css是一種現(xiàn)代的速种、為HTML5準(zhǔn)備的優(yōu)質(zhì)替代方案。

Modernizr

Modernizr是一個(gè) JavaScript 庫(kù)低千,用于檢測(cè)用戶(hù)瀏覽器的 HTML5 與 CSS3 特性配阵。

postCSS

PostCSS是一個(gè)JS插件轉(zhuǎn)換樣式表的工具。這些插件能夠檢驗(yàn)?zāi)愕腃SS示血、支持變量和混合棋傍,轉(zhuǎn)化css3的新特性語(yǔ)法、行內(nèi)圖片等难审。

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

CSS屬性兼容查詢(xún)網(wǎng)站:http://caniuse.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市告喊,隨后出現(xiàn)的幾起案子麸拄,更是在濱河造成了極大的恐慌,老刑警劉巖黔姜,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拢切,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡秆吵,警方通過(guò)查閱死者的電腦和手機(jī)淮椰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)纳寂,“玉大人主穗,你說(shuō)我怎么就攤上這事”形撸” “怎么了忽媒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)腋粥。 經(jīng)常有香客問(wèn)我猾浦,道長(zhǎng)陆错,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任金赦,我火速辦了婚禮音瓷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夹抗。我一直安慰自己绳慎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布漠烧。 她就那樣靜靜地躺著杏愤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪已脓。 梳的紋絲不亂的頭發(fā)上珊楼,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音度液,去河邊找鬼厕宗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛堕担,可吹牛的內(nèi)容都是我干的已慢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼霹购,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼佑惠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起齐疙,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤膜楷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后贞奋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體把将,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年忆矛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了察蹲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡催训,死狀恐怖洽议,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漫拭,我是刑警寧澤亚兄,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站采驻,受9級(jí)特大地震影響审胚,放射性物質(zhì)發(fā)生泄漏匈勋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一膳叨、第九天 我趴在偏房一處隱蔽的房頂上張望洽洁。 院中可真熱鬧,春花似錦菲嘴、人聲如沸饿自。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)昭雌。三九已至,卻和暖如春健田,著一層夾襖步出監(jiān)牢的瞬間烛卧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工妓局, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留总放,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓跟磨,卻偏偏與公主長(zhǎng)得像间聊,于是被迫代替她去往敵國(guó)和親攒盈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抵拘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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