壹次网首页 | 工具源码首页 | 技术文章首页 | 文章分类 | | |

文章搜索: 分类 关键字
您的位置:首页网页设计Html/Css → IE和Firefox下CSS和Javascript的区别
IE和Firefox下CSS和Javascript的区别
添加日期:2007-8-1 8:20:39     [ ]
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> 
<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> 
<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> 
<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> 
<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="/blog/sURL" ) 

属性: 

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

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

src :  必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。 
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src="/blog/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(/blog/down.png’) no-repeat"; 

else 

$(’infoBox’).style.background="0 none no-repeat"; 
$(’infoBox’).style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=scale,src="/blog/down.png’")"; 


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

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

</script>


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

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

对链接或按钮直接设置相对位置,让它们浮动于滤镜区域的上面。
出处:论坛转载 作者:佚名 点击:
 热点文章
·photoshop制作香烟、烟头、烟雾
·photoshop图片卷角、翻页效果的制作
·用U盘或移动硬盘装《深山红叶袖珍系统Win PE启动..
·photoshop经典恐怖片海报效果教程
·ghost.pif最新变种手动查杀,ARP欺骗挂马+KAV让..
·photoshop制作3D立体小人和字体
·photoshop水晶球质感表现 - 关于光影的细节
·关于zend解密的程序
·王晨昀:谁来拯救中小网站?
·photoshop泛黄、陈旧纸张效果的制作
 推荐文章
·如何彻底删除一个不需要的系统服务
·模仿QQ和MSN消息提示的效果
·CC攻击的思路及防范方法
·广告联盟的一些评价
Powered by yici.net
CopyRight (C) 2006-2012 版权所有   [ 依次网 ];未经授权,任何人不得抄袭、仿冒本站
ICP备案:苏ICP备05011771号 证书下载 ICP证号:苏ICP证040301
仪征广目网络信息服务有限公司 版权所有