亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

css與javascript跨瀏覽器兼容性總結

2019-11-20 14:08:41
字體:
來源:轉載
供稿:網友

本文以大量實例形式總結了css與javascript跨瀏覽器的兼容性問題。分享給大家供大家參考。具體總結如下:

一、CSS樣式兼容性

1. FLOAT閉合(clearing float)

網頁在某些瀏覽器上顯示錯位很多時候都是因為使用了float浮動而沒有真正閉合,這也是div無法自適應高度的一個原因。如果父div沒有設float而其子div卻設了float的話,父div無法包住整個子DIV,這種情況一般出現在一個父DIV下包含多個子DIV。解決辦法:

1) 給父DIV也設上float

2) 在所有子DIV后新加一個空DIV(目前Ext是這么做的),比如:

.parent{width:100px;}.son1{float:left;width:20px;}.son2{float:left;width:80px;}.clear{clear:both;margin:0;parding0;height:0px;font-size:0px;}<div class="parent">   <div class="son1"></div>   <div class="son2"></div>   <div class="clear"></div></div>

3)  萬能 float 閉合

將以下代碼加入Global CSS 中,給需要閉合的div加上 class=”clearfix” 即可,屢試不爽。

<style>/* Clear Fix */.clearfix:after {content:".";display:block;height:0;clear:both;visibility:hidden;}.clearfix {display:inline-block;}/* Hide from IE Mac /*/.clearfix {display:block;}/* End hide from IE Mac *//* end of clearfix */</style>

:after(偽對象),設置在對象后發生的內容,通常和content配合使用,IE不支持此偽對象,非Ie 瀏覽器支持,所以并不影響到IE/WIN瀏覽器。這種的最麻煩。

 4) overflow:auto

只要在父DIV的CSS中加上overflow:auto就搞定。舉例:

.parent{width:100px;overflow:auto}.son1{float:left;width:20px;}.son2{float:left;width:80px;}<div class="parent">   <div class="son1"></div>   <div class="son2"></div></div>

原理是,外圍元素之所以不能很好的延伸,問題出在了overflow上,因為overflow不可見(見W3C的解釋)?,F在只要將給外圍元素添 加一個“overflow:auto”,就可以解決問題,結果是除了IE,真的可以解決。下來就要解決IE的問題了,再加上“_height:1%”,這個問題就完全解決了。我試了一下,其實不加"_height:1%“在IE下也行,留著吧。

 2.截字省略號

.hh {-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;}

這個是在越出長度后會自行的截掉多出部分的文字,并以省略號結尾。技術是好技術,很多人都喜歡亂用,但注意Firefox并不支持。

<meta http-equiv="x-ua-compatible" content="ie=7" />

頁面加上這句就可以讓頁面兼容IE7了

供參考! 給大家提醒一個漂浮需要注意的問題 注意設置DIV寬和高 注意設置overflow:hidden; 注意閉合針對火狐 父div樣式display:inline-block;

3.  cursor:hand和cursor:pointer

firefox不支持hand,但ie支持pointer
解決方法:統一使用pointer

4. CSS透明

幾款瀏覽器對透明度的支持方式各不相同,為了保證在IE, Firefox, Chrome, Safari等主流瀏覽器下都能正常顯示透明度的效果,我們可以定義一個透明度的class,因為一寫就要寫3條,省的每次都復制來復制去了。

具體代碼如下:

.transparent{filter:alpha(opacity=60); /*支持 IE 瀏覽器*/-moz-opacity:0.6; /*支持 FireFox 瀏覽器*/opacity:0.6; /*支持 Chrome, Opera, Safari 等瀏覽器*/}

5.css中的width和padding

在IE7和FF中width寬度不包括padding,在Ie6中包括padding。

二、JavaScript兼容

1. children與childNodes

IE提供的children、childNodes和firefox下的childNodes的行為是有區別的,firefox下childNodes會把換行和空白字符都算作父節點的子節點,而IE的childNodes和children不會。比如:

<div id="dd">
<div>yizhu2000</div>
</div>

id為dd的div在IE下用childNodes查看,其子節點數為1,而ff下為三,我們可以從firefox的dom查看器里面看到他的childNodes為["/n ", div, "/n"]。

要在firefox下模擬children的屬性我們可以這樣做:

if (typeof(HTMLElement) != "undefined" && !window.opera) {  HTMLElement.prototype.__defineGetter__("children", function() {    for (var a = [], j = 0, n, i = 0; i < this.childNodes.length; i++) {      n = this.childNodes[i];      if (n.nodeType == 1) {        a[j++] = n;        if (n.name) {          if (!a[n.name])            a[n.name] = [];          a[n.name][a[n.name].length] = n;        }        if (n.id)          a[n.id] = n;      }    }    return a;  });} 

2. firefox和ie的事件

window.event只能在IE下使用,而不能用在Firefox下,這是因為Firefox的event只能在事件發生的現場使用。  Firefox必須從源處加入event作參數傳遞。IE忽略該參數,用window.event來讀取該event。

比方說下面這個在ie下獲得鼠標位置的方法:

<button onclick="onClick()" >獲得鼠標點擊橫坐標</button><script type="text/javascript">function onclick(){alert(event.clientX);}</script> 

需要改成

<button onclick="onClick(event)">獲得OuterHTML</button><script type="text/javascript">function onclick(event){event = event || window.event;alert(event.clientX);}</script>

才能在兩種瀏覽器下使用

3.HTML對象獲取問題

FireFox獲取方式document.getElementById("idName")
ie使用document.idname或者document.getElementById("idName")
解決辦法:統一使用document.getElementById("idName");

4. const問題

在Firefox下,可以使用const關鍵字或var關鍵字來定義常量;
IE下,只能使用var關鍵字來定義常量;
解決方法:統一使用var關鍵字來定義常量。

5.frame問題

以下面的frame為例:

<frame src="xxx.html" id="frameId" name="frameName" />

a)訪問frame對象

IE:使用window.frameId或者window.frameName來訪問這個frame對象,frameId和frameName可以同名;
Firefox:只能使用window.frameName來訪問這個frame對象;
另外,在IE和Firefox中都可以使用window.document.getElementById("frameId")來訪問這個frame對象;

b) 切換frame內容

在 IE和Firefox中都可以使用window.document.getElementById("testFrame").src = "xxx.html"或window.frameName.location = "xxx.html"來切換frame的內容;

如果需要將frame中的參數傳回父窗口(注意不是opener,而是parent),可以在frame中使用parent來訪問父窗口。例如:

parent.document.form1.filename.value="Aqing";

6. body問題

Firefox的body在body標簽沒有被瀏覽器完全讀入之前就存在;而IE的body則必須在body標簽被瀏覽器完全讀入之后才存在;

7. firefox與IE的父元素(parentElement)的區別

IE:obj.parentElement

firefox:obj.parentNode

解決方法:因為firefox與IE都支持DOM,因此全部使用obj.parentNode

8.innerText的問題

innerText在IE中能正常工作,但是innerText在FireFox中卻不行,需用textContent;

解決方法:

if (navigator.appName.indexOf("Explorer") > -1) {  document.getElementById('element').innerText = "my text";} else {  document.getElementById('element').textContent = "my text";} 

9.AJAX獲取XMLHTTP的區別

var xmlhttp;if (window.XMLHttpRequest) {  xmlhttp = new XMLHttpRequest();} elseif (window.ActiveXObject) { // IE的獲取方式  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}

注意:在IE中,xmlhttp.send(content)方法的content可以為空,而firefox則不能為null,應該用send(""),否則會出現411錯誤。

希望本文所述對大家WEB程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av网址在线观看| 另类图片亚洲另类| 国产精品欧美日韩| 久久精品成人欧美大片古装| 欧美精品制服第一页| 欧美中在线观看| 亚洲男女自偷自拍图片另类| 色婷婷久久av| 亚洲精品国产精品乱码不99按摩| 欧美精品在线播放| 欧美高清无遮挡| 亚洲一区中文字幕在线观看| 日韩精品欧美国产精品忘忧草| 成人免费在线视频网站| 日韩精品欧美国产精品忘忧草| 国产精品久久久久久久久久久久久久| 亚洲最大成人网色| 欧美国产日韩一区二区| 菠萝蜜影院一区二区免费| 亚洲欧美国产va在线影院| 91久久精品国产91性色| 亚洲一区免费网站| 日本成人黄色片| 青草青草久热精品视频在线网站| 国产精品一二三视频| 欧美在线视频a| 欧美专区在线视频| 久久精彩免费视频| 久久天天躁狠狠躁夜夜躁| 欧美激情一区二区久久久| 最近2019中文字幕一页二页| 国产91对白在线播放| 久久久久中文字幕| 国产精品三级美女白浆呻吟| 国产91精品在线播放| 亚洲欧美中文另类| 国产精品日韩欧美| 亚洲国产又黄又爽女人高潮的| 国产成人精品在线视频| 久久久久久这里只有精品| 亚洲毛片在线看| 久久精品国产视频| 色樱桃影院亚洲精品影院| 精品亚洲永久免费精品| 亚洲精品欧美一区二区三区| 亚洲欧美精品在线| 国产91九色视频| 亚洲美女在线观看| 久久91精品国产91久久跳| 欧美激情在线一区| 国产区精品在线观看| 日本一区二区三区四区视频| 欧美性视频在线| 欧美中文字幕在线播放| 97在线视频免费观看| 国产一区二区黑人欧美xxxx| 中文字幕在线看视频国产欧美| 在线亚洲国产精品网| 日韩**中文字幕毛片| 日韩在线视频一区| 欧美激情在线观看视频| 国产ts人妖一区二区三区| 亚洲综合成人婷婷小说| 欧美日韩国产麻豆| 欧美激情第三页| 俺也去精品视频在线观看| 欧美夫妻性视频| 久久久999国产| 成人av色在线观看| 国产福利视频一区| 欧美精品成人在线| 国产久一一精品| 国产精品高潮呻吟久久av无限| 色综合视频一区中文字幕| 日韩精品极品在线观看| 91理论片午午论夜理片久久| 欧美日韩日本国产| 国产不卡av在线| 国产亚洲精品久久久久久牛牛| 国产视频精品一区二区三区| 国产精品久久久久久超碰| 在线精品播放av| 一区二区欧美激情| 国产色综合天天综合网| 91免费高清视频| 亚洲第一区第二区| 亚洲tv在线观看| 亚洲电影免费观看| 日本久久中文字幕| 欧美在线观看日本一区| 亚洲精品欧美极品| 国产在线视频一区| 中文.日本.精品| 中文字幕亚洲一区在线观看| 久久综合伊人77777蜜臀| 日韩在线小视频| 久久久这里只有精品视频| 中文字幕国产亚洲| 欧美日韩免费在线观看| 亚洲精品美女在线观看播放| 欧美成人午夜激情视频| 97香蕉超级碰碰久久免费软件| 国产97色在线| 欧美人成在线视频| 国产成人小视频在线观看| 欧美日韩中文字幕在线| 亚洲精品美女免费| 国产精品久久99久久| 久久成人av网站| 欧美日韩国产成人高清视频| 国产精品久久久久久久久借妻| 久久夜色精品国产| 97精品国产91久久久久久| 欧美日韩成人免费| 米奇精品一区二区三区在线观看| 揄拍成人国产精品视频| 日韩最新免费不卡| 亚洲国产女人aaa毛片在线| 成人精品在线视频| 亚洲欧美成人网| 国产日韩中文在线| 欧美在线观看网站| 日韩国产精品亚洲а∨天堂免| 欧美视频在线观看免费| 国产脚交av在线一区二区| 亚洲影视九九影院在线观看| 亚洲人成在线电影| 国产三级精品网站| 大桥未久av一区二区三区| 日韩久久精品成人| 日韩av电影在线免费播放| 国产视频观看一区| 久久精品国产视频| 最近2019中文免费高清视频观看www99| 日韩精品免费看| 2019中文字幕在线免费观看| 国产精品久久一区主播| 久久免费视频在线| 欧美精品免费播放| 国产亚洲欧美日韩一区二区| 97热在线精品视频在线观看| 国产精品第七影院| 久久天天躁狠狠躁夜夜爽蜜月| 一区三区二区视频| 欧美xxxx做受欧美| 亚洲品质视频自拍网| 久久久久久91| 日韩欧美在线免费观看| 日韩国产高清视频在线| 日韩一二三在线视频播| 国内精品久久久久伊人av| 亚洲欧美综合精品久久成人| 国产精品男女猛烈高潮激情| 97在线视频免费看| 日韩在线免费高清视频| 欧美激情免费看| 成人午夜在线影院| 在线视频欧美日韩精品| 国产精品成人观看视频国产奇米| 精品露脸国产偷人在视频| 久久精品成人一区二区三区| 伊人久久五月天| 日韩欧美亚洲一二三区| 国产精品男人的天堂|