为什么要把a标签搞为absolute呢?很多时候为了覆盖在其他html标签上,实现一些hack点击,比如一个flash广告,要想在整个flash上加一个链接,单击整块flash链接到某个网页,有这么几种办法:
1,flash 文件内置链接,这种办法,修改链接地址非常麻烦,因为你需要修改flash源文件,如果flash应用的很熟练,这不失为一中解决办法,但如果你的flash链接经常换,最好不要用这种办法。
on (release) {
getURL("http://www.example.com", "_blank");
}
2,通过flash参数动态读取地址,这种办法,比第一种稍好,因为,你可以修改地址:
<object>标签内添加flash变量传递:
<param name="flashVar" value="link_url='http://www.example.com'" />
flash源文件内写上:
on (release) {
getURL(stage.loaderInfo.parameters["link_url"], "_blank");
}
稍微通用一点,
不过,对于我这种对flash一点都不了解的人来说,上面的办法还是他妈的麻烦,因为我不会修改flash源文件。
所以我的办法就是第三种:
3,用一个绝对定位的a标签覆盖在flash上:
<div class="flash">
<a class="flash-link"></a>
<div class="flash-object"><object>....flash嵌入代码</object> </div>
</div>
样式代码:
.flash { position:relative; height : 80px; }
.flash-link { position : absolute; z-index : 2 ; left: 0; top: 0 ; width: 100%; height: 100%; display: block; }
.flash-object { position : absolute; z-index: 1; left: 0; top: 0; width:300px; height:80px; }
这样,我以为就可以了,Firefox,Chrome, Opera。。。等所有非IE浏览器均可以单击。但IE系列的浏览器却不行,经过仔细测试,发现a标签虽然display为block; 并且拥有width:100%; height:100%;但a这个时候表现的还是像inline元素一样,如果存在文字,则有文字链接,如果不存在,则没有。
不过,如果给a加上一个background属性,颜色或图片都可以,比如:background:#CCC,背景为灰色,A标签立刻表现为一个块装元素,完全遮住了flash。 网上也有很多其他解决的办法,比如用一个透明的gif图片覆盖在a标签上,但我觉得这样的做法额外的消耗了一个服务器链接请求。所以还是用背景颜色代码,把透明度设为0 :
把.flash-link代码修改为:
.flash-link { position : absolute; z-index : 2 ; left: 0; top: 0 ; width: 100%; height: 100%; display: block; opacity:0; filter:alpha(opacity=0);
}
这样A就可以完美的完成了覆盖在Flash上面实现单击链接的使命了。
分享到:
相关推荐
position:absolute属性在其他浏览器中都是正常的,但惟独在ie6下有问题,下面是经过测试可行的解决方法
目前几乎所有主流的浏览器都支持position属性("inherit"除外,"inherit"不支持所有包括IE8和之前版本IE浏览器,IE9、IE10还没测试过),以下是w3school对position五个值的解释: 其中absolute和relative是最常用的...
目前几乎所有主流的浏览器都支持position属性(inherit除外,inherit不支持所有包括IE8和之前版本IE浏览器,IE9、IE10还没测试过),以下是w3school对position五个值的解释: 其中absolute和relative是最常用的,...
如图: 可是在IE6下查看,却变成了right:1px的效果了: IE6还有奇数宽度的bug,解决方案就是将外部相对定位的div宽度改成偶数。... position: absolute; top: 0px; right: 0px; background:#000000
目前几乎所有主流的浏览器都支持position属性(inherit除外,inherit不支持所有包括IE8和之前版本IE浏览器,IE9、IE10还没测试过),以下是w3school对position五个值的解释: 其中absolute和relative是最常用的,...
失效的情况,经过测试和排查,发现原来ie6,ie7有一个很坏的习惯就是:如果父对象有overflow:hidden属性,子对象中的position属性是relative或者absolute,那么在ie6和ie7下父对象的overflow会失效。 解决办法是给...
官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到...
官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到...
复制代码代码如下: .closeImg{ cursor:... position:absolute; right:9px; right:0px\9;//这是ie的样式 bottom:55px; display:none } @media screen and (-webkit-min-device-pixel-ratio:0){.closeImg{right:0px;} }
checkbox扁平 <input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"> 获取选中内容 document.selection.createRange().duplicate().text 自动完成功能 打开该功能 关闭该功能 ...
2.css中的filter效果是IE的私有属性,同样所有的非IE浏览器都不认识的. 3.text-transform:capitalize 强制第一个字母大写; text-transform:lowercase 强制所有字母小写 text-transform:uppercase 强制所有字母大写...