小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

CSS的解決IE5/IE5.5/IE6/FF/IE7的兼容性問題(2)

 昵稱5323568 2010-12-30
css部分:

IE6 IE7 IE8 Firefox Chrome Safari
!important Y Y  
_ Y  
* Y Y  
*+ Y  
\9 Y Y Y  
\0 Y  
nth-of-type(1) Y Y

示例代碼:

#test{
color:red; /* 所有瀏覽器都支持 */
color:red !important;/* Firefox、IE7支持 */
_color:red; /* IE6支持 */
*color:red; /* IE6、IE7支持 */
*+color:red; /* IE7支持 */
color:red\9; /* IE6、IE7、IE8支持 */
color:red\0; /* IE8支持 */
}

body:nth-of-type(1) p{color:red;} /* Chrome、Safari支持 */

1、CSS透明
IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)
FF:opacity:0.6

2、cursor:hand VS cursor:pointer
FF不支持hand,但ie支持pointer
解決方法: 統(tǒng)一使用pointer

3、padding 問題
padding 5px 4px 3px 1px FireFox無法解釋簡寫,
必須改成 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px;

4、消除ul/ol等列表的縮進時
樣式應寫成:list-style:none;margin:0px;padding:0px;
其中margin屬性對IE有效,padding屬性對FireFox有效

5、CSS圓角
IE:不支持圓角
FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-

radius-bottomleft:4px;-moz-border-radius- bottomright:4px;

6、CSS雙線凹凸邊框
IE:border:2px outset;

FF: -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;

-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;

7、table邊框

.ctb {

border-top: 1px solid #3E4093;

border-left: 1px solid #3E4093;

border-right: 0px;

border-bottom: 0px;

}

.ctb td{

border-top: 1px solid #F4F4FF;

border-left: 1px solid #F4F4FF;

border-right: 1px solid #3E4093;

border-bottom: 1px solid #3E4093;

}

-------------------------------------------------------------------------------------------------------------------------------------------

js部分:

1、window.event

function gotoSubmit(e) {
  e = e? e : (window.event ? window.event : null);  
}

2、IE:interText ;FF:interHTML或者textContent

3、獲取鼠標位置:

在IE 中,event 對象有 x, y 屬性,F(xiàn)F中沒有。

在FF中,與event.x 等效的是 event.pageX。但event.pageX IE中沒有。
解決方法:mX = event.clientX ? event.clientX : event.pageX;


4、event.srcElement問題
說明:IE下,even對象有srcElement屬性,但是沒有target屬性;Firefox下,even對象有target屬性,但是沒有 srcElement屬性.
解決方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)來代替IE下的event.srcElement或者Firefox

下的event.target.

或者

  if(document.all)
  {
  obj = event.srcElement ;
  }
  else
  {
  obj = arguments[0].target;
  }

5、window.location.href問題
說明:IE或者Firefox2.0.x下,可以使用window.location或 window.location.href;Firefox1.5.x下,只能使用window.location.
解決方法:使用window.location來代替window.location.href.

6、模態(tài)和非模態(tài)窗口問題
說明:IE下,可以通過showModalDialog和showModelessDialog打開模態(tài)和非模態(tài)窗口;Firefox下則不能.
解決方法:直接使用window.open(pageURL,name,parameters)方式打開新窗口
如果需要將子窗口中的參數(shù)傳遞回父窗口,可以在子窗口中使用window.opener來訪問父窗口. 例如:var parWin = window.opener;

parWin.document.getElementById("Aqing").value = "Aqing";

7、FF中類似 obj.style.height = imgObj.height 的語句無效
解決方法:
obj.style.height = imgObj.height + 'px';

8、捕獲事件

if (document.all)
  window.document.attachEvent("onclick",gorush);
else
  window.document.addEventListener("click",gorush,false) 

9、判斷瀏覽器類型:
var isIE=document.all? true:false;

10、

如果在frame標簽中書寫了以下屬性:
<frame src="/xx.htm" id="frameId" name="frameName" />
那么ie可以通過id或者name訪問這個frame對應的window對象
而FF只可以通過name來訪問這個frame對應的window對象
例如如果上述frame標簽寫在最上層的window里面的htm里面,那么可以這樣訪問
IE: window.top.frameId或者window.top.frameName來訪問這個window對象
FF: 只能這樣window.top.frameName來訪問這個window對象
另外,在FF和ie中都可以使用window.top.document.getElementById("frameId")來訪問frame標簽
并且可以通過window.top.document.getElementById("testFrame").src = 'xx.htm'來切換frame的內(nèi)容
也都可以通過window.top.frameName.location = 'xx.htm'來切換frame的內(nèi)容

11、父結(jié)點的問題
在FF中沒有 parentElement parentElement.children 而用 parentNode parentNode.childNodes
childNodes的下標的含義在IE和FF中不同,F(xiàn)F使用DOM規(guī)范,childNodes中會插入空白文本節(jié)點。
一般可以通過node.getElementsByTagName()來回避這個問題。當html中節(jié)點缺失時,IE和FF對parentNode的解釋不同,例如
<form>
<table>
  <input/>
</table>
</form>
FF中input.parentNode的值為form, 而IE中input.parentNode的值為空節(jié)點
FF中節(jié)點沒有removeNode方法,必須使用如下方法 node.parentNode.removeChild(node)

12、自定義屬性問題
說明:IE下,可以使用獲取常規(guī)屬性的方法來獲取自定義屬性,也可以使用getAttribute()獲取自定義屬性;FF下,只能使用

getAttribute()獲取自定義屬性.
解決方法:統(tǒng)一通過getAttribute()獲取自定義屬性.

13、事件委托方法
IE:document.body.onload = inject; //Function inject()在這之前已被實現(xiàn)
FF:document.body.onload = inject();
如果要加傳遞參數(shù),可以做個閉包
(function(arg){

  document.body.onload=function(){inject(arg);};

})(arg)

14、css"float"屬性

IE:document.getElementById("header").style.styleFloat = "left";

FF:document.getElementById("header").style.cssFloat = "left";

15、獲取label標簽“for”屬性

IE:

var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("htmlFor");

FF:

var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("for");

對于 setAtrribute 方法來說也是同樣的語法。

16、獲取視窗或瀏覽器窗口的尺寸

IE :

var myBrowserSize = [0, 0];
myBrowserSize[0] = document.documentElement.clientWidth;
myBrowserSize[1] = document.documentElement.clientHeight;

FF:

var myBrowserSize = [0, 0];
myBrowserSize[0] = window.innerWidth;
myBrowserSize[1] = window.innerHeight;

17、設置濾鏡:

IE:

var myObject = document.getElementById("myElement");
myObject.style.filter = "alpha(opacity=80)";

FF:

var myObject = document.getElementById("myElement");
myObject.style.opacity = "0.5";

18、.在取得網(wǎng)頁窗口區(qū)域和獲取滾動條位移距離時也要用document.documentElement
即這四個屬性(clientWidth、 clientHeight、scrollLeft、scrollTop)一定要用document.documentElement
但是 document.body.appendChild()和document.body.removeChild()卻是可以用的,而且用 document.documentElement.appendChild()和 document.documentElement.removeChild()代替卻會報錯;


總結(jié)了一下僅 clientWidth、clientHeight、scrollLeft、scrollTop和 document.documentElement.style時才用document.documentElement

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

例如:
FF:
<body>
<script type="text/javascript">
document.body.onclick = function(evt){
evt = evt || window.event;
alert(evt);
}
</script>
</body>


IE&Firefox:
<body>
</body>
<script type="text/javascript">
document.body.onclick = function(evt){
evt = evt || window.event;
alert(evt);
} </script>

20、幻燈片效果

if(document.all){

filters[0].Apply();

document.getElementById(imageid).src=path;//更換圖片

filters[0].play();

}

else{

firfoxPlays(path,imageid)

}

var intTimeStep=20;

var intAlphaStep=0.04;

var curSObj=null;

var curOpacity=null;

function firfoxPlays(path,imageid) {

  curSObj=document.getElementById(imageid);

  curSObj.style.opacity=0;

  curSObj.src=path;

  curOpacity=0;

  setObjOpen();

}

function setObjOpen() {

  curOpacity+=intAlphaStep;

  curSObj.style.opacity =curOpacity;

  if (curOpacity<1) {

  setTimeout('setObjOpen()',intTimeStep);

  }

}

21、offsetLeft問題

var amount=7;//每次移動7(速度)

if(!document.all) {

var f=document.getElementById(flashDiv);

f.style.left=(f.offsetLeft-amount )+'px';

}

else{

document.getElementById(flashDiv).style.pixelLeft -= amount;

}

22、判斷瀏覽器

if (navigator.userAgent.indexOf("Firefox") > -1)

其他同理

23、document.documentElement.scrollTop

在safari和chrome下為 document.documentElement.scrollTop+document.body.scrollTop

24、//聚焦控件后把光標放到最后
function getSelectPos(obj)
{

var esrc = document.getElementById(obj);
if(esrc==null)
{
  if(document.all)
  {
  esrc = event.srcElement ;
  }
  else
  {
  esrc = arguments[0].target;
  }
}
 
 window.setTimeout(function(){esrc.focus();},0);
}

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多