`
happinessshuang
  • 浏览: 22189 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

html a标签position为absolute时,IE浏览器无法显示为块

阅读更多
为什么要把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上面实现单击链接的使命了。
分享到:
评论

相关推荐

    ie6下position:absolute不显示问题解决方法

    position:absolute属性在其他浏览器中都是正常的,但惟独在ie6下有问题,下面是经过测试可行的解决方法

    CSS position属性absolute relative等五个值的解释

    目前几乎所有主流的浏览器都支持position属性("inherit"除外,"inherit"不支持所有包括IE8和之前版本IE浏览器,IE9、IE10还没测试过),以下是w3school对position五个值的解释: 其中absolute和relative是最常用的...

    CSS position属性和实例应用演示

    目前几乎所有主流的浏览器都支持position属性(inherit除外,inherit不支持所有包括IE8和之前版本IE浏览器,IE9、IE10还没测试过),以下是w3school对position五个值的解释: 其中absolute和relative是最常用的,...

    CSS IE6奇数宽度或高度的bug

    如图: 可是在IE6下查看,却变成了right:1px的效果了: IE6还有奇数宽度的bug,解决方案就是将外部相对定位的div宽度改成偶数。... position: absolute; top: 0px; right: 0px; background:#000000

    CSS position属性的正确解释和实例应用

    目前几乎所有主流的浏览器都支持position属性(inherit除外,inherit不支持所有包括IE8和之前版本IE浏览器,IE9、IE10还没测试过),以下是w3school对position五个值的解释: 其中absolute和relative是最常用的,...

    ie6、ie7下overflow失效的有效解决方法

    失效的情况,经过测试和排查,发现原来ie6,ie7有一个很坏的习惯就是:如果父对象有overflow:hidden属性,子对象中的position属性是relative或者absolute,那么在ie6和ie7下父对象的overflow会失效。 解决办法是给...

    ASP.NET中实现jQuery Validation-Engine的Ajax验证实现代码

    官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到...

    ASP.NET中实现jQuery Validation-Engine的Ajax验证

    官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到...

    为ie和chrome单独设置样式的方法

    复制代码代码如下: .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;} }

    js使用小技巧

    checkbox扁平 &lt;input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"&gt; 获取选中内容 document.selection.createRange().duplicate().text 自动完成功能 打开该功能 关闭该功能 ...

    CSS学习之CSS网页制作的10个技巧

    2.css中的filter效果是IE的私有属性,同样所有的非IE浏览器都不认识的. 3.text-transform:capitalize 强制第一个字母大写; text-transform:lowercase 强制所有字母小写 text-transform:uppercase 强制所有字母大写...

Global site tag (gtag.js) - Google Analytics