flash遮住div问题的正确解决方法


在处理 "flash遮住div问题" 时,通常是因为Flash对象(如SWF文件)的默认z-index值较高,导致它覆盖在HTML元素(如div)之上。要解决这个问题,你可以尝试以下几种方法:

### 1. 调整Flash的wmode参数

如果你的Flash是通过``或``标签嵌入的,可以通过设置`wmode`(窗口模式)参数为`transparent`或`opaque`(更常用的是`transparent`,因为它允许HTML元素背后的内容透过来)来解决覆盖问题。`wmode=transparent`会让Flash元素与其HTML父容器在同一个层级上,而不是总是位于顶层。


<object width="400" height="300">
    <param name="movie" value="yourfile.swf"></param>
    <param name="wmode" value="transparent"></param>
    <embed src="yourfile.swf" width="400" height="300" wmode="transparent"></embed>
</object>

### 2. 使用CSS调整z-index

尽管直接通过CSS调整Flash元素的`z-index`可能不起作用(因为Flash是一个插件,其z-index通常通过`wmode`控制),但你可以尝试调整被Flash遮住的HTML元素的`z-index`值,前提是该HTML元素与Flash元素有共同的父容器,并且父容器的`position`属性不是`static`。


.flash-container {
    position: relative; /* 确保父容器有定位 */
}

.html-element-behind-flash {
    position: absolute;
    z-index: 100; /* 尝试更高的z-index值 */
    /* 其他样式,如top, left等,根据需要调整 */
}

### 3. 使用JavaScript调整Flash位置或尺寸

如果上述方法都不可行,你可能需要通过JavaScript动态调整Flash对象的位置或尺寸,以确保它不会遮住其他HTML元素。这通常涉及到修改``或``标签的样式属性。

### 4. 考虑替代方案

如果问题依然无法解决,或者你不希望继续使用Flash(因为Adobe已经宣布停止更新和支持Flash Player),考虑使用HTML5、CSS3和JavaScript等现代技术来替代Flash的功能。

### 5. 检查父容器的overflow属性

确保Flash元素所在容器的`overflow`属性没有设置为`hidden`,这可能会裁剪掉部分子元素,包括Flash对象和其他HTML元素。

每种方法都有其适用场景,你可能需要根据具体情况选择最合适的一种或几种方法来解决Flash遮住div的问题。