`
sbiigu
  • 浏览: 163873 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ie与firefox下的css,javascript不同之处

阅读更多
http://www.programbbs.com/doc/570.htm

1、浏览器事件的捕捉

在IE下有一个全局的window.event,当事件触发后可以直接使用,但是在fireFox下没有这个东西,当调用触发事件调用一个函数时,如果这个函数没有形参,那么firefox会默认的把event(事件)传进去,但是有参数时就不行啦,所以解决的办法是,自己手动传一个event进去,这样就ok了,具体代码如下:

下面两个函数,都是响应鼠标onclick时触发的动作,第一个在ie下使用正常,但是在firefox下却有问题,改成第二个那样使用,就没有问题了,注意调用方法的区别

view plaincopy to clipboardprint?
<html>
<head>
<title>test</title>
<script language="javascript">
function testevent()
{
window.alert(window.event.target.id);
return;
}
</script>
</head>
</body>
<a href="#" onclick="testevent()" id="alink">testevent</a>
</body>
</html>

view plaincopy to clipboardprint?
<html>
<head>
<title>test1</title>
<script language="javascript">
function testevent(evt)
{
window.alert(evt.target.id);
return;
}
</script>
</head>
</body>
<a href="#" onclick="testevent(event)" id="alink">testevent</a>
</body>
</html>

其实event对象在ie以及firefox还有很多不同的特性,比如clienx,pagex等,但是由于在现在流行使用的js框架 prototype中解决了很多这些问题,所以如果是在基于prototype下的开发,这些问题可以考虑得少一些了,只是上面提到的这个捕获问题, prototype中并没有完善的解决,所以单独列出来,下面提及的关于js的也都只列出prototype中未解决的

2、关于透明度的设置

为了达到给层设置半透明的效果时,在IE和firefox下也有所不同,IE下,style的filter属性有Alpha值可供使用,而firefox下没有Alpha值,所以得指定style的MozOpacity,代码见下:

<STYLE>
filter: Alpha(opacity=10); /*IE*/
-moz-opacity:.1; /*老版本FireFox 1.0 以前*/
opacity:0.1; /*新版本FireFox*/
</STYLE>

view plaincopy to clipboardprint?
<script language="javascript">
//设置一个id为screen的div的透明度为45%,在IE下:
document.getElementById('screen').style.filter='Alpha(Opacity=45)';

//而在firefox下:
document.getElementById('screen').style.MozOpacity='0.45';
</script>

3、定位层时的有趣问题

在定位层时,我们的做法是给层的style.left 和 style.top设置位置,但是今天发现了一个很有趣的问题,代码如下:

view plaincopy to clipboardprint?
<script language="javascript">
//给一个id为dialog的层定位
document.getElementById('dialog').left = 100;
document.getElementById('dialog').left = 100;

//问题出现了,在ie下,默认将层的左上角定位在(100px,100px)这个点上
//但是在firefox下却死活都不行,后来发现,原来ie在你没有指定单位的时候
//替你加上了单位“px”,而firefox比较“笨”
//他觉得你没有指定单位,就不给你定位,好了,那么标准的写法应该是这样:

document.getElementById('dialog').left = 100px;
document.getElementById('dialog').left = 100px;

//这样firefox也认了

</script>

4、PNG透明背景的问题
PNG图片在网站设计中是不可或缺的部分,最大的特点应该在于PNG可以无损压缩,而且还可以设置透明,对于增强网站的图片色彩效果有重要的作用。

但为什么PNG图片却没有GIF和JPG图片的使用来得广泛呢,这个祸因应归属于微软的IE浏览器(Firefox和Opera对PNG支持的比较好,而现在浏览器的主流IE6却无法很好的支持)。不过微软在最近也开始改过自新了,新出的的IE7可以很好的支持PNG,可以想象在未来的网络世界, PNG图片的重要性将会更加凸显。

但在大家还在绝大多数的使用IE6的时候,我们又怎样在IE6的世界去完美使用PNG图片呢(PNG图片的时候最重要的地方在于PNG透明背景图片的运用)。我们应该庆幸我们是幸福的!IE5.5+的AlphaImageLoader滤镜为通向png提供了一个道路,如果他载入的是PNG (Portable Network Graphics)格式,则0%-100%的透明度也被提供。但IE5.0无法支持属性,那只有完全绝望了,不过绝望的只是几个,得到是绝大数,我们应该知足,知足才会常乐。

现在我们将通过Hack和AlphaImageLoader滤镜来实现IE6下的PNG透明背景图片。

先熟悉下滤镜的语法:

view plaincopy to clipboardprint?
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )

属性:

enabled : 可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true | false
true :  默认值。滤镜激活。
false :  滤镜被禁止。

sizingMethod : 可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。
crop : 剪切图片以适应对象尺寸。
image : 默认值。增大或减小对象的尺寸边界以适应图片的尺寸。
scale : 缩放图片以适应对象的尺寸边界。

src :  必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。

Firefox、Opera等完全支持PNG透明图片的浏览器也支持子选择器(>),而IE不识别(包括IE7),所有我们可以通过这来定义Firefox、Opera等浏览器中PNG图片的样式。如下

view plaincopy to clipboardprint?
<script language="javascript>
//给一个id为infoBox的层设置一个透明背景,背景图片是down.png,代码如下
//进行了浏览器判断

if (navigator.appName!="Microsoft Internet Explorer")
{
$('infoBox').style.background="0 url(down.png') no-repeat";
}
else
{
$('infoBox').style.background="0 none no-repeat";
$('infoBox').style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=scale,src=down.png')";
}

</script>

不过需要注意的一个地方:

使用AlphaImageLoader 后该区域的超链接和按钮会失效,解决的方法:

对链接或按钮直接设置相对位置,让它们浮动于滤镜区域的上面。
分享到:
评论

相关推荐

    IE与Firefox的CSS兼容大全.rar

    在网页设计领域,IE(Internet Explorer)和Firefox是两种截然不同的浏览器,它们对CSS(Cascading Style Sheets,层叠样式表)的支持存在一定的差异。"IE与Firefox的CSS兼容大全"是一个针对这两个浏览器之间CSS兼容...

    IE和Firefox在css,JavaScript方面的兼容性

    标题与描述均聚焦于“IE和Firefox在css,JavaScript方面的兼容性”,这涉及到网页开发中一个重要的议题:浏览器兼容性。在web开发中,确保代码能在不同浏览器上正常运行是至关重要的,因为用户可能使用各种不同的...

    IE与Firefox的CSS兼容大全

    ### IE与Firefox的CSS兼容大全 #### 引言 随着Web技术的发展,浏览器之间的差异逐渐成为Web开发过程中不可忽视的问题之一。Internet Explorer(IE)与Mozilla Firefox作为两款主流的浏览器,在处理CSS样式时存在...

    解决CSS在IE与火狐下的兼容问题

    本文将深入探讨如何解决CSS在IE与Firefox下的兼容问题,帮助你的网页在各种浏览器中展现一致的效果。 1. **认识浏览器渲染差异** - **DOCTYPE声明**:DOCTYPE声明会影响浏览器进入何种标准模式。在IE中,没有...

    IE和Firefox对JavaScript的兼容

    然而,由于不同的浏览器对其解析和执行的方式存在差异,尤其是IE(Internet Explorer)和Firefox,这导致了JavaScript在不同浏览器间的兼容性问题。这份文档“IE火狐的JavaScript兼容.doc”深入探讨了这些差异,并...

    IE与FireFox的js和css几处不同点

    在JavaScript和CSS的世界里,IE(Internet Explorer)与Firefox(Mozilla Firefox)的实现存在一些显著差异,这在开发跨浏览器的Web应用时需要特别注意。以下是一些关键的区别点: 1. **innerText与textContent**:...

    javascript和css在IE和Firefox中的不同点

    JavaScript 和 CSS 在不同的浏览器上,特别是 Internet Explorer (IE) 和 Mozilla Firefox 之间存在一些差异,这些差异主要体现在解析规则、实现细节以及某些功能的支持上。理解这些差异对于编写跨浏览器兼容的代码...

    css和javascript在IE和Firefox中二十三个不同点

    CSS和JavaScript在Internet Explorer(IE)和Firefox这两个浏览器中存在诸多差异,这些差异主要体现在DOM操作、属性访问、事件处理等方面。以下是一些关键的不同点: 1. **文档对象模型(DOM)操作** - **form元素...

    Javascript的IE和Firefox(火狐)兼容性

    ### Javascript的IE与Firefox(火狐)兼容性解决方案 在Web开发过程中,浏览器兼容性问题一直是开发者们关注的重点之一。由于不同的浏览器对于Web标准的支持程度存在差异,这导致了同样的代码在不同浏览器中的表现...

    javascript和css在IE和Firefox中的不同点及解决兼容性的方案

    JavaScript 和 CSS 在不同的浏览器之间可能存在兼容性问题,尤其是在 Internet Explorer (IE) 和 Mozilla Firefox 这两个浏览器中。本文将详细探讨这些差异,并提供相应的解决策略,以确保网站在各种浏览器中都能...

    让CSS兼容IE和Firefox的技巧集合

    标题中的“让CSS兼容IE和Firefox的技巧集合”是指在网页设计中,针对Internet Explorer(IE)和Firefox这两种浏览器之间CSS样式兼容性问题的解决策略。描述中的“嘿呌,IE不再是个bug”暗示了这些技巧能帮助开发者...

    Javascript在IE和FireFox中的不同表现

    - IE的`onreadystatechange`事件在某些情况下处理方式与Firefox不同。 7. **定时器**: - `setTimeout`和`setInterval`在IE中可能存在精度问题,而Firefox通常更准确。 8. **错误处理**: - IE使用`try...catch...

    Javascript的IE和Firefox兼容性问题集合

    9. **CSS3动画和过渡**:Firefox和IE对CSS3动画和过渡的支持不同,可能需要使用JavaScript模拟,或者使用CSS3前缀(如-moz-、-webkit-)。 10. **盒模型**:IE使用怪异盒模型,而其他浏览器遵循W3C标准盒模型。在...

    ie与firefox兼容文档

    5. **JavaScript兼容性**:IE与Firefox对JavaScript API的实现也有所不同。例如,IE的`document.all`属性在Firefox中不存在,而Firefox的`window.getSelection()`在旧版IE中可能无效。 为了解决这些问题,开发者...

    IE和firefox调试插件

    本文将详细介绍IE和Firefox浏览器的JavaScript、CSS、HTML调试插件,帮助你更好地理解和掌握这些工具。 首先,我们关注的是IE浏览器的调试插件。压缩包中的"IEDevToolBarSetup.msi"文件就是用于安装Internet ...

    javascript在firefox与ie下的兼容性总结

    除了以上列举的问题,还有一些其他需要注意的点,比如CSS样式在Firefox和IE中的表现可能不同,需要特别关注。在编写JavaScript代码时,为了确保跨浏览器兼容性,推荐使用DOM标准方法,避免依赖特定浏览器的行为。...

    css入门教程IE和Firefox浏览器CSS兼容性技巧整理.docx

    然而,不同浏览器之间对于CSS的支持程度和解析方式存在差异,尤其是IE(Internet Explorer)和Firefox之间。以下是一些关于如何处理这些兼容性问题的常见技巧: 1. **DOCTYPE声明**: 为了确保W3C标准的遵循和兼容...

    CSS兼容IE和Firefox的技巧集合

    然而,由于不同的浏览器对CSS规范的实现存在差异,特别是Internet Explorer(IE)与Firefox,开发者常常面临兼容性问题。本文将深入探讨解决CSS在IE和Firefox之间兼容性问题的一些关键技巧。 首先,理解盒模型差异...

    Javascript在IE和FireFox中的兼容处理

    以上只是JavaScript在IE与Firefox中兼容性问题的一部分,实际开发中可能遇到更多细节。解决这些问题需要对两种浏览器的特性有深入理解,并使用条件注释、polyfills和现代JavaScript库(如jQuery)来确保代码在各种...

Global site tag (gtag.js) - Google Analytics