重点是:不要用a标签包住flash,让a标签和flash是兄弟关系。然后通过绝对定位的方式,将它定位flash之上(必要的时候,可以使用z-index属性)。因为要使用定位,所以将a标签和flash至于一个div中是有必要的。参考代码如下(重要的代码已经用红色标注):
复制代码代码如下:<div xss=removed><a>http://justinyoung.cnblogs.com/</a>” style=”display:block
在网页设计中,有时我们需要在Flash内容上添加可点击的链接,以便用户可以直接通过点击Flash对象触发链接行为。然而,由于浏览器对Flash的支持和交互处理方式不同,这往往成为一个跨平台兼容性问题。标题提到的“浏览器跨平台使用div等标签盖住flash的另类实用解决方法”提供了一个巧妙的解决方案,主要利用HTML结构和CSS定位来实现。
避免使用`<a>`标签直接包裹`<object>`或`<embed>`标签,这样在某些浏览器中会导致点击事件无法正常工作。正确的方法是让`<a>`标签与Flash元素成为同级元素,即兄弟关系。这样,我们可以独立控制`<a>`标签的位置和大小,使其覆盖在Flash内容上方。
关键在于使用CSS的绝对定位(`position: absolute`)使`<a>`标签位于`<object>`或`<embed>`之上。将`<a>`标签和Flash所在的`<object>`或`<embed>`元素放入一个共同的父级`<div>`中,设置该`<div>`的相对定位(`position: relative`)。这样做是为了让子元素`<a>`的绝对定位有一个参考基准。
示例代码中,`<a>`标签设置了以下样式:
- `display: block`:将`<a>`标签转换为块级元素,可以设置宽高。
- `width: 200px`和`height: 50px`:指定`<a>`标签的尺寸,使其覆盖Flash。
- `position: absolute`:开启绝对定位。
- `left: 0`和`top: 0`:使`<a>`标签左上角与父级`<div>`的左上角对齐。
- `background: transparent url(‘/images/toumingtupian.gif’) no-repeat;`:设置一个透明背景图像,用于点击区域的视觉提示。
- `z-index: higher_value`(未在示例中给出,但可能需要):如果存在其他元素,可以通过设置更高的`z-index`值确保`<a>`标签在最上方。
此外,注意到在某些情况下(如IE6-9),`<a>`标签的点击区域可能仅限于边框部分。为解决这个问题,可以给`<a>`标签添加一个透明背景图片,以扩展其可点击区域。这通常是因为Flash对象在IE下阻止了`<a>`标签的鼠标事件。
这种方法的优点是它不依赖JavaScript,而是依赖于HTML和CSS,因此在支持这两种技术的浏览器中都能很好地工作。同时,它提供了跨平台的兼容性,适用于IE6-9以及Chrome、Firefox、Opera等现代浏览器。
这个方法通过合理的HTML结构和CSS定位,实现了在Flash内容上添加可点击链接的跨平台解决方案,避免了因浏览器差异导致的交互问题。在实际应用中,根据具体需求调整`<a>`标签的尺寸、位置和样式,即可实现灵活的覆盖效果。