瀏覽器常見的兼容問題

什么是瀏覽器的兼容問題

? ? ? ?瀏覽器的兼容性問題也就是網(wǎng)頁的兼容性或者網(wǎng)站兼容性問題, 指網(wǎng)頁在各種瀏覽器上的css表現(xiàn)形式不同而產(chǎn)生的瀏覽器和網(wǎng)頁間的兼容問題. 又或者不同瀏覽器對(duì)javaScript腳本中的一些方法的識(shí)別不同.

? ? ? ?兼容問題最多的是IE低版本瀏覽器, windows_XP系統(tǒng)的瀏覽器版本是IE6-8, window7支持IE9-11, 一般做到兼容IE6

? ? ? ?瀏覽器兼容的幾個(gè)方面: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.html 以及 css樣式 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.H5, CSS3新特性
? ? ? 3.js腳本一些方法的支持


CSS樣式的兼容

CSS樣式的兼容是前端工作中不可避免并且相當(dāng)復(fù)雜的一項(xiàng)內(nèi)容。

當(dāng)代瀏覽器都支持 CSS ,但是由于不同的瀏覽器對(duì)CSS解釋不同,不同的瀏覽器的默認(rèn)值表現(xiàn)的差別:

IE默認(rèn)margin
FF默認(rèn)padding

導(dǎo)致在不同瀏覽器中打開我們做好的頁面時(shí)非竿,會(huì)顯示混亂畴蒲。

常見的兼容問題:

1.IE瀏覽器給圖片加超鏈接時(shí),圖片會(huì)自動(dòng)加上邊框(紫色兩像素的邊框)
? ? 解決方案:img{border:none/0}
2.不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外邊距和內(nèi)田沖不同
? ? 問題癥狀:隨便寫幾個(gè)標(biāo)簽界斜,不加樣式控制的情況下慷彤,各自的margin 和padding差異較大。
? ? 解決方案:*{margin:0;padding:0;}
3.IE6浮動(dòng)元素橫向margin加倍(產(chǎn)生因素:一個(gè)塊元素虑粥、float:left、margin-left:5px時(shí) 宪哩,顯? ? ? 示的margin為10px娩贷;行內(nèi)元素沒有上下外邊距,有左右外邊距锁孟。)
? ? 解決方案:display:inline彬祖;使浮動(dòng)忽略IE下再解析為5px
4.margin:0 auto,對(duì)IE6不起作用
? ? 解決方案:給body{text-align:center}
5.經(jīng)典3像素bug:IE6瀏覽器茁瘦,浮動(dòng)塊元素與未浮動(dòng)塊元素處于同一行,有默認(rèn)的3px間距储笑。
? ? 解決方案:設(shè)置非浮動(dòng)元素浮動(dòng)
6.高度自適應(yīng)問題(最小高度)IE6不認(rèn)識(shí)min-height甜熔,IE6里的內(nèi)容會(huì)自動(dòng)撐開
? ? 解決方案:div { height:auto!important; height:200px; min-height:200px; }
7.opacity 定義元素的透明度
? ? 解決方案:filter:alpha(opacity=80);/*ie支持該屬性*/
? ? ? ? ? ? ? ? ? ? ? opacity:0.8突倍;/*支持css3的瀏覽器*/
8.游標(biāo)手指cursor
? ? 解決方案:cursor: pointer 可以同時(shí)在 IE Chrome 等中顯示游標(biāo)手指狀腔稀, hand 僅 IE 可以

IE9以下版本瀏覽器兼容HTML5的方法

使用菜鳥的靜態(tài)資源html5shiv包

使用條件注釋法引入包

<!--[if It IE 9]>
? ? ? <script src="http://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js ">
? ? ? </script>
<![end if]-->

并且在樣式表中初始化新標(biāo)簽的CSS:
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}

css3是最新的css 標(biāo)準(zhǔn). w3c的css3規(guī)范仍在開發(fā). 但是, 許多新的css屬性已經(jīng)在現(xiàn)代瀏覽器使用
IE只有在版本9 及以上支持

js腳本兼容

1、事件對(duì)象

任何一個(gè)對(duì)象只要觸發(fā)了事件羽历,都傳一個(gè)參數(shù)(event);
event對(duì)象
IE:默認(rèn)參數(shù)? window.event
非IE:必須傳遞一個(gè)參數(shù)

兼容方法:
IE瀏覽器下焊虏,只要訪問全局對(duì)象window的event屬性即可,忽略該參數(shù)秕磷,用window.event來讀取該event诵闭。
obj.onclick = function(e){? e = e || window.event

}

2、事件對(duì)象中的屬性

IE下澎嚣,even對(duì)象有x,y屬性涂圆,但是沒有pageX,pageY屬性;
非IE下,event對(duì)象有pageX,pageY屬性币叹,但是沒有x,y屬性

兼容方法:
使用條件注釋法:<!--[if IE]>...event.x...<![end if]-->
缺點(diǎn)是在IE瀏覽器下可能會(huì)增加額外的HTTP請(qǐng)求數(shù)润歉。
或者:var x = (event.x ? event.x : event.pageX)

3、innerHTML颈抚、innerText踩衩、textContent

IE支持innerHTML、innerText贩汉,不支持textContent屬性
其他瀏覽器三種屬性都支持

4驱富、DOM2級(jí)事件綁定

js的事件綁定方法中,IE9以下(不包括9)只支持attachEvent,而FF和Chrome只支持addEventListener匹舞,所以就必須為這兩個(gè)方法做兼容處理褐鸥,原理是先判斷attachEvent只否為真(存在),如果為真則用attachEvent()方法赐稽,否則的話就用addEventListener()叫榕。
同樣的,事件移除方法也有對(duì)應(yīng)的支持:
IE9以下(不包括9)只支持detachEvent,而FF和Chrome只支持removeEventListener

把這個(gè)兼容寫法封裝成一個(gè)函數(shù)

function myAddEvent(obj,ev,fn) {
//obj為要綁定事件的元素姊舵,ev為要綁定的事件晰绎,fn為綁定事件的函數(shù)
? ? if(obj.attachEvent){
? ? ? ? ?obj.attachEvent("on" + ev,fn);
? ? ?}else {
? ? ? ? ?obj.addEventListener(ev,fn,false);
? ? ?}
}

7、獲取頁面內(nèi)所有元素的一個(gè)集合
IE:documen.all
非IE:document.getElementsByTagName("*")
documen.all
8括丁、獲取對(duì)象的可視化區(qū)域的寬和高荞下,滾動(dòng)條距離頂端的距離
var w = document.body.clientWidth || document.documentElement.clientWidth;
var t = document.body.scrollTop || document.documentElement.scrollTop;

兼容查詢

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子尖昏,更是在濱河造成了極大的恐慌仰税,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抽诉,死亡現(xiàn)場離奇詭異肖卧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)掸鹅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門塞帐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巍沙,你說我怎么就攤上這事葵姥。” “怎么了句携?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵榔幸,是天一觀的道長。 經(jīng)常有香客問我矮嫉,道長削咆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任蠢笋,我火速辦了婚禮拨齐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昨寞。我一直安慰自己瞻惋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布援岩。 她就那樣靜靜地躺著歼狼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪享怀。 梳的紋絲不亂的頭發(fā)上羽峰,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音添瓷,去河邊找鬼梅屉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛仰坦,可吹牛的內(nèi)容都是我干的履植。 我是一名探鬼主播计雌,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼悄晃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妈橄,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤庶近,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后眷蚓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鼻种,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年沙热,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叉钥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篙贸,死狀恐怖投队,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爵川,我是刑警寧澤敷鸦,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站寝贡,受9級(jí)特大地震影響扒披,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜圃泡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一碟案、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颇蜡,春花似錦蟆淀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唁情,卻和暖如春疑苔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甸鸟。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工惦费, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抢韭。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓薪贫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刻恭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瞧省,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

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