在IE中绝对定位锚标记(没有文本)不可点击
我有两个定位绝对位于图像的顶部,链接可以在其他浏览器(Chrome浏览器,FF,Safari)点击,但不是在IE浏览器(迄今在8和9testing)
奇怪的是,如果我给链接的background-color
他们是可点击的,但是如果background-color
设置为transparent
( 这是我想要的 ),他们不再是可点击的,我也尝试设置zoom:1
但没有运气。 我猜IE中的hasLayout
位用IE 8/9去掉了,所以现在猜测zoom
对于这种问题并不重要。
任何想法,使这些链接显示在IE 8/9透明BG?
这里是我一直在使用的小提琴: jsFiddle的例子
我有以下的HTML布局:
<div id="content"> <img src="http://placehold.it/724x300" width="724" height="300" alt="woot" /> <div id="countdown"></div> <a id="link1" href="http://www.stackoverflow.com" title="link1"></a> <a id="link2" href="http://www.stackoverflow.com" title="link2"></a> </div>
和CSS:
body {text-align:center;} #content {position:relative; width:724px; height:300px; margin:0 auto;} #countdown {position:absolute; width:650px; height:110px; top:100px; left:30px; background-color:blue;} #link1 {position:absolute; width:520px; height:35px; bottom:20px; left:0;} #link2 {position:absolute; width:200px; height:35px; bottom:20px; right:0;}
我之前有过这个确切的问题,而且总是让我感到恼火。 我不知道为什么会发生这种情况,但是我总是创build一个1像素,1像素的透明PNG(或GIF),并在后台声明中使用它,如下所示:
a { background: url("/path/to/image.png") 0 0 repeat; }
希望这可以帮助。
PS – 不要指定任何实际的背景颜色。 只要使用上面的例子,它应该工作。
除此之外,试着将你的锚点标记设置为块来显示,也许还要在其中插入一个不间断的空格(因为此时它们是空的,可能会跳过IE):
a { display: block; background: url("/path/to/image.png") 0 0 repeat; } <a href="#"> </a>
你可以使用提到的background-image
技巧。 如果您不想为此使用透明图片,只需在图片url中使用未知的scheme或about:blank
。
a { background-image: url("iehack:///"); }
要么
a { background-image: url("about:blank"); }
至less在IE 8 + 9(我testing过的唯一的IE)和Firefox和Chrome的当前版本中,这种方法是有效的。 它仍然是有效的CSS,并没有引起额外的stream量。 使用jQuery时,第一个“黑客”可能会给Chrome(也可能是其他)带来JS错误。 后者只是(但肯定)在Chrome中由于about:blank
文件的MIMEtypes错误而给出了一个MIME-Type警告。
移植了我之前发布的评论。
稍长,但仍然没有stream量,基地64编码透明GIF:
background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')
这有它自己的优点/缺点,但可以是有用的。 也:
background-color: rgba(0,0,0,0)
我最近用过这个
@ tw16的评论提到invisible
让我思考opacity
。
结合IE的filter:alpha(opacity=0)
和background-color:#fff
(或任何颜色)似乎是一个很好的解决scheme。 testing和工作在IE 7-9(6不使用不透明度filter出于某种原因,但我不需要支持6,所以这将工作)
1×1图片解决scheme具有全球影响力,因此我将把支票交给他。
感谢您的答案。
我有同样的问题。 我的工作解决scheme是添加一个边框到适当的锚点。 像下面的例子。 一个好处是,你不需要额外的图像。
a { border-right: 1px solid transparent }
如果没有任何内容,IE有一个令人厌恶的习惯,就是不会像预期的那样工作。 要解决这个问题,请给每个链接一个
为内容。
另一个要尝试的是设置display: block;
在这些链接上,IE将它们作为块级元素而不是内联元素。 这也可以帮助你需要的链接是空的。