瀏覽器兼容性(手機(jī)、電腦蛮位。js较沪、html鳞绕、css)

概念

所謂的瀏覽器兼容性問(wèn)題,是指因?yàn)椴煌臑g覽器對(duì)同一段代碼有不同的解析尸曼,造成頁(yè)面顯示效果不統(tǒng)一的情況们何。在大多數(shù)情況下,我們的需求是控轿,無(wú)論用戶用什么瀏覽器來(lái)查看我們的網(wǎng)站或者登陸我們的系統(tǒng)冤竹,都應(yīng)該是統(tǒng)一的顯示效果。所以瀏覽器的兼容性問(wèn)題是前端開發(fā)人員經(jīng)常會(huì)碰到和必須要解決的問(wèn)題解幽。接下來(lái) 淺談一下瀏覽器兼容性遇到的問(wèn)題及解決辦法贴见。

css常見兼容性問(wèn)題

1.不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)丁和內(nèi)補(bǔ)丁不同

問(wèn)題癥狀:隨便寫幾個(gè)標(biāo)簽烘苹,不加樣式控制的情況下躲株,各自的margin 和padding差異較大。
解決方案:css 里 *{margin:0;padding:0;}
備注:這個(gè)是最常見的也是最易解決的一個(gè)瀏覽器兼容性問(wèn)題镣衡,幾乎所有的CSS文件開頭都會(huì)用通配符來(lái)設(shè)置各個(gè)標(biāo)簽的內(nèi)外補(bǔ)丁是0霜定。

2.塊屬性標(biāo)簽float后,又有橫行的margin情況下廊鸥,在IE6顯示margin比設(shè)置的大

問(wèn)題癥狀:常見癥狀是IE6中后面的一塊被頂?shù)较乱恍?br> 解決方案:在float的標(biāo)簽樣式控制中加入 display:inline;將其轉(zhuǎn)化為行內(nèi)屬性
備注:我們最常用的就是div+CSS布局了望浩,而div就是一個(gè)典型的塊屬性標(biāo)簽,橫向布局的時(shí)候我們通常都是用div float實(shí)現(xiàn)的惰说,橫向的間距設(shè)置如果用margin實(shí)現(xiàn)磨德,這就是一個(gè)必然會(huì)碰到的兼容性問(wèn)題。

3.設(shè)置較小高度標(biāo)簽(一般小于10px)吆视,在IE6典挑,IE7,遨游中高度超出自己設(shè)置高度

問(wèn)題癥狀:IE6啦吧、7和遨游里這個(gè)標(biāo)簽的高度不受控制您觉,超出自己設(shè)置的高度
解決方案:給超出高度的標(biāo)簽設(shè)置overflow:hidden;或者設(shè)置行高line-height 小于你設(shè)置的高度。
備注:這種情況一般出現(xiàn)在我們?cè)O(shè)置小圓角背景的標(biāo)簽里授滓。出現(xiàn)這個(gè)問(wèn)題的原因是IE8之前的瀏覽器都會(huì)給標(biāo)簽一個(gè)最小默認(rèn)的行高的高度琳水。即使你的標(biāo)簽是空的,這個(gè)標(biāo)簽的高度還是會(huì)達(dá)到默認(rèn)的行高般堆。

4.圖片默認(rèn)有間距

問(wèn)題癥狀:幾個(gè)img標(biāo)簽放在一起的時(shí)候在孝,有些瀏覽器會(huì)有默認(rèn)的間距,加了問(wèn)題一中提到的通配符也不起作用淮摔。
解決方案:使用float屬性為img布局
備注:因?yàn)閕mg標(biāo)簽是行內(nèi)屬性標(biāo)簽私沮,所以只要不超出容器寬度,img標(biāo)簽都會(huì)排在一行里噩咪,但是部分瀏覽器的img標(biāo)簽之間會(huì)有個(gè)間距顾彰。去掉這個(gè)間距使用float是正道极阅。(不建議負(fù)margin,但負(fù)margin本身就是容易引起瀏覽器兼容問(wèn)題的用法涨享。)

5. IE9一下瀏覽器不能使用opacity

解決方案:opacity: 0.5;filter: alpha(opacity = 50);
filter: progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 50);

6. 邊距重疊問(wèn)題筋搏;當(dāng)相鄰兩個(gè)元素都設(shè)置了margin 邊距時(shí),margin 將取最大值厕隧,舍棄最小值奔脐;

解決方案:為了不讓邊重疊,可以給子元素增加一個(gè)父級(jí)元素吁讨,并設(shè)置父級(jí)元素為overflow:hidden髓迎;

7.cursor:hand 顯示手型在safari 上不支持

解決方案:統(tǒng)一使用 cursor:pointer

8.兩個(gè)塊級(jí)元素,父元素設(shè)置了overflow:auto建丧;子元素設(shè)置了position:relative ;且高度大于父元素排龄,在IE6、IE7會(huì)被隱藏而不是溢出

解決方案:父級(jí)元素設(shè)置position:relative翎朱。

html 常見兼容性問(wèn)題

js 常見兼容性問(wèn)題

1. const問(wèn)題

問(wèn)題癥狀:Firefox下,可以使用const關(guān)鍵字或var關(guān)鍵字來(lái)定義常量;IE下,只能使用var關(guān)鍵字來(lái)定義常量.
解決方案:統(tǒng)一使用var關(guān)鍵字來(lái)定義常量橄维。

2. event事件問(wèn)題:
//event事件問(wèn)題
    document.onclick=function(ev){//谷歌火狐的寫法,IE9以上支持拴曲,往下不支持争舞;
        var e=ev;
        console.log(e);
    }
    document.onclick=function(){//谷歌和IE支持,火狐不支持澈灼;
        var e=event;
        console.log(e);
    }
    document.onclick=function(ev){//兼容寫法竞川;
        var e=ev||window.event;
        var mouseX=e.clientX;//鼠標(biāo)X軸的坐標(biāo)
        var mouseY=e.clientY;//鼠標(biāo)Y軸的坐標(biāo)
    }
3. 設(shè)置監(jiān)聽事件
function addEvent(obj,type,fn){//添加事件監(jiān)聽,三個(gè)參數(shù)分別為 對(duì)象叁熔、事件類型委乌、事件處理函數(shù),默認(rèn)為false
        if (obj.addEventListener) {
            obj.addEventListener(type,fn,false);//非IE
        } else{
            obj.attachEvent('on'+type,fn);//ie,這里已經(jīng)加上on者疤,傳參的時(shí)候注意不要重復(fù)加了
        };
    }
    function removeEvent(obj,type,fn){//刪除事件監(jiān)聽
        if (obj.removeEventListener) {
            obj.removeEventListener(type,fn,false);//非IE
        } else{
            obj.detachEvent('on'+type,fn);//ie福澡,這里已經(jīng)加上on,傳參的時(shí)候注意不要重復(fù)加了
        };
    }
4. 阻止事件傳播:
//js阻止事件傳播驹马,這里使用click事件為例
    document.onclick=function(e){
        var e=e||window.event;
        if (e.stopPropagation) {
            e.stopPropagation();//W3C標(biāo)準(zhǔn)
        }else{
            e.cancelBubble=true;//IE....
        }
    }
5. 阻止默認(rèn)事件:
//js阻止默認(rèn)事件
    document.onclick=function(e){
        var e=e||window.event;
        if (e.preventDefault) {
            e.preventDefault();//W3C標(biāo)準(zhǔn)
        }else{
            e.returnValue='false';//IE..
        }
    }
6. 關(guān)于EVENT事件中的target:
//關(guān)于event事件中的target
    document.onmouseover=function(e){
        var e=e||window.event;
        var Target=e.target||e.srcElement;//獲取target的兼容寫法革砸,后面的為IE
        var from=e.relatedTarget||e.formElement;//鼠標(biāo)來(lái)的地方,同樣后面的為IE...
        var to=e.relatedTarget||e.toElement;//鼠標(biāo)去的地方
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糯累,一起剝皮案震驚了整個(gè)濱河市算利,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泳姐,老刑警劉巖效拭,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缎患,警方通過(guò)查閱死者的電腦和手機(jī)慕的,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)挤渔,“玉大人肮街,你說(shuō)我怎么就攤上這事∨械迹” “怎么了嫉父?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)眼刃。 經(jīng)常有香客問(wèn)我绕辖,道長(zhǎng),這世上最難降的妖魔是什么擂红? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任仪际,我火速辦了婚禮,結(jié)果婚禮上篮条,老公的妹妹穿的比我還像新娘弟头。我一直安慰自己,他們只是感情好涉茧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疹娶,像睡著了一般伴栓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雨饺,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天钳垮,我揣著相機(jī)與錄音,去河邊找鬼额港。 笑死饺窿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的移斩。 我是一名探鬼主播肚医,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼向瓷!你這毒婦竟也來(lái)了肠套?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猖任,失蹤者是張志新(化名)和其女友劉穎你稚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡刁赖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年搁痛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宇弛。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡落追,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涯肩,到底是詐尸還是另有隱情轿钠,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布病苗,位于F島的核電站疗垛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏硫朦。R本人自食惡果不足惜贷腕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咬展。 院中可真熱鬧泽裳,春花似錦、人聲如沸破婆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春篮洁,著一層夾襖步出監(jiān)牢的瞬間鸠姨,已是汗流浹背菩颖。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工噪珊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饰豺。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓亿鲜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親冤吨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蒿柳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5锅很? 答:HTML5是最新的HTML標(biāo)準(zhǔn)其馏。 注意:講述HT...
    kismetajun閱讀 27,490評(píng)論 1 45
  • javascript部分: 1.HTML對(duì)象獲取問(wèn)題 FireFox:document.getElementByI...
    開水不能直接喝閱讀 3,098評(píng)論 1 3
  • (方法是:每寫一小段代碼(布局中的一行或者一塊)我們都要在不同的瀏覽器中看是否兼容,當(dāng)然熟練到一定的程度就沒(méi)這么麻...
    Air丹閱讀 1,777評(píng)論 0 6
  • 序章 談?wù)劇盀g覽器兼容性”的問(wèn)題儿倒?很多前端的面試或筆試中,都有比較籠統(tǒng)的“說(shuō)說(shuō)你所知道的各瀏覽器存在的兼容問(wèn)題”呜笑,...
    麻辣小隔壁閱讀 3,048評(píng)論 1 57