2.02日音讯,解决网站中Flash总是占"鳌头"的方法。如果网页中存有flash动画,相信大家都会遇到这么一个奇怪的问题,那就是它的层次总是在第一,总是会把别的层给遮盖,有时候我们是不需要它来遮盖的,这就要解决一下了,有时候大家会相到透明的解决方法,确实在很大程度上也能解决掉这个问题,今天
邯郸网站建设首创网络小编就来给大家全面阐述一下,欢迎大家拍砖:
Flash默认总是会显示在页面的最顶层,也就是说如果页面上存在一些DHTMLLayer,那么这些层将会被Flash盖住。即使设置了z-index属性也无济于事。Adobe的技术知识库里提供了解决的办法:FlashcontentdisplaysontopofallDHTMLlayers。
参数针对IE:给<object>标签增加wmode
<paramname="wmode"value="transparent">
针对FIREFOX给<embed>标签也增加类似参数
wmode="transparent"
<objectclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"width="756"height="200"
accesskey="1"tabindex="2"title="seo">
<paramname="movie"value="*.swf"/>
<paramname="quality"value="high"/>
<paramname="wmode"value="transparent">
<embedwmode="transparent"src="*.swf"quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash"width="756"height="200"></embed>
</object>
下面对上面的代码进行详细的解析:
flash插入网页中,如果和其他元素有重叠,无论我们如何设置z-index,Flash都会浮动在其他元素之上。这是为什么呢?
1、其实与z-index无关,浏览器解析页面时,会先判断元素的类型,如果是窗口类型的,会优先于非窗口类型的元素,显示在页面最顶端,如果同属于非窗口类型的,才回去判断z-index的大小。
2、Flash嵌入网页中,有个wmode属性,用于指定窗口模式,其值有window窗口、opaque非窗口不透明、transparent非窗口透明三种。其中window表
示Flash以窗口形式显示,opaque和transparent表示Flash以非窗口的形式显示,如果不显示这是wmode属性,默认的wmode的值为window。无论我们如
何设置z-index也不会有效果。解决的办法就是这事wmode属性为opaque或transparent。因为Flash在ie和ff下是用不同的标签嵌入的(ie下一boject标签嵌入,firefox下embed标签嵌入)所以我们需要对两种标签记性设置.
通过代码的相关的解析,相信大家应该能够很好的理解为什么flash插入网页中,如果和其他元素有重叠,无论我们如何设置z-index,Flash都会浮动在其他元素之上呢!同时也会使用本文章中给出的方法很好的解决这个问题。