天天看點

FireFox與IE開發上的一些差別

1. window.event 

* IE:有window.event對象

* FF:沒有window.event對象。可以通過給函數的參數傳遞event對象。如onmousemove=doMouseMove(event)

2. 滑鼠目前坐标

* IE:event.x和event.y。

* FF:event.pageX和event.pageY。

* 通用:兩者都有event.clientX和event.clientY屬性。

3. 滑鼠目前坐标(加上滾動條滾過的距離)

* IE:event.offsetX和event.offsetY。

* FF:event.layerX和event.layerY。

4. 标簽的x和y的坐标位置:style.posLeft 和 style.posTop

* IE:有。

* FF:沒有。

* 通用:object.offsetLeft 和 object.offsetTop。

5. 窗體的高度和寬度

* IE:document.body.offsetWidth和document.body.offsetHeight。注意:此時頁面一定要有body标簽。

* FF:window.innerWidth和window.innerHegiht,以及 document.documentElement.clientWidth和 document.documentElement.clientHeight。

* 通用:document.body.clientWidth和document.body.clientHeight。

6. 添加事件

* IE:element.attachEvent("onclick", func);。

* FF:element.addEventListener("click", func, true)。

* 通用:element.onclick=func。雖然都可以使用onclick事件,但是onclick和上面兩種方法的效果是不一樣的, onclick 隻有執行一個過程,而attachEvent和addEventListener執行的是一個過程清單,也就是多個過程。例如: element.attachEvent("onclick", func1);element.attachEvent("onclick", func2)這樣func1和func2都會被執行。

7. 标簽的自定義屬性

* IE:如果給标簽div1定義了一個屬性value,可以div1.value和div1["value"]取得該值。

* FF:不能用div1.value和div1["value"]取。

* 通用:div1.getAttribute("value")。

8. 父節點、子節點和删除節點

* IE:parentElement、parement.children,element.romoveNode(true)。

* FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node)。

9. 畫圖

* IE:VML。

* FF:SVG。

10. CSS:透明

* IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。

* FF:opacity:0.6。

11. 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;。

12. 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;。

13. 其它(待整理)

  FireFox: div 設定 margin-left, margin-right 為 auto 時已經居中, IE 不行

  FireFox: body 設定 text-align 時, div 需要設定 margin: auto(主要是 margin-left,margin-right) 方可居中

  FireFox: 設定 padding 後, div 會增加 height 和 width, 但 IE 不會, 故需要用 !important 多設一個 height 和 width

  FireFox: 支援 !important, IE 則忽略, 可用 !important 為 FireFox 特别設定樣式

  div 的垂直居中問題: vertical-align:middle; 将行距增加到和整個DIV一樣高 line-height:200px; 然後插入文字,就垂直居中了。缺點是要控制内容不要換行

cursor: pointer 可以同時在 IE FireFox 中顯示遊标手指狀, hand 僅 IE 可以

  FireFox: 連結加邊框和背景色,需設定 display: block, 同時設定 float: left 保證不換行。參照 menubar, 給 a 和 menubar 設定高度是為了避免底邊顯示錯位, 若不設 height, 可以在 menubar 中插入一個空格

  XHTML+CSS相容性解決方案小集

  使用XHTML+CSS構架好處不少,但也确實存在一些問題,不論是因為使用不熟練還是思路不清晰,我就先把一些我遇到的問題寫在下面:

  1.在mozilla firefox和IE中的BOX模型解釋不一緻導緻相差2px解決方法:

  div{margin:30px!important;margin:28px;}注意這兩個margin的順序一定不能寫反,據阿捷的說法!important這個屬性IE不能識别,但别的浏覽器可以識别。是以在IE下其實解釋成這樣:

  div{maring:30px;margin:28px}重複定義的話按照最後一個來執行,是以不可以隻寫margin:XXpx!important;

http://bbs.itokit.com/ 專業的web開發交流論壇

  2.IE5 和IE6的BOX解釋不一緻IE5下div{width:300px;margin:0 10px 0 10px;}div的寬度會被解釋為300px-10px(右填充)-10px(左填充)最終div的寬度為280px,而在IE6和其他浏覽器上寬度則是以300px+10px(右填充)+10px(左填充)=320px來計算的。這時可以做如下修改

  div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}

  3.ul标簽在Mozilla中預設是有padding值的,而在IE中隻有margin有值是以先定義

  ul{margin:0;padding:0;}就能解決大部分問題

  4.關于腳本,在xhtml1.1中不支援language屬性,隻需要把代碼改為

  <script type=”text/javascript”>

  FireFox: div 設定 margin-left, margin-right 為 auto 時已經居中, IE 不行

  IE怎麼不行? .div{width:100px;margin:0 auto;}一樣居中

  FireFox: 設定 padding 後, div 會增加 height 和 width, 但 IE 不會, 故需要用 !important 多設一個 height 和 width

  這個是ie對css盒模型解釋有問題造成的,隻能遷就它網頁教學網

  FireFox: 支援 !important, IE 則忽略, 可用 !important 為 FireFox 特别設定樣式

  IE7 一樣相容 !important 了

  cursor: pointer 可以同時在 IE FireFox 中顯示遊标手指狀, hand 僅 IE 可以

  pointer是标準的寫法,hand是ie6之前版本自行定義的