使用display时的IE问题:阻止链接

Wal*_*ssa 13 html css internet-explorer

这是我的HTML:

<div id="links">
  <a href="">Link 1</a>
  <a href="">Link 2</a>
  <a href="">Link 3</a>
  <a href="">Link 4</a>
</div>
Run Code Online (Sandbox Code Playgroud)

这些是CSS样式:

#links {
    position: absolute;
    border: 1px solid #000;
}

#links a {
    display: block;
}

#links a:hover {
    background-color: #CCC;
}
Run Code Online (Sandbox Code Playgroud)

这显示了一个链接列表,问题是在IE中,我只能通过直接点击文本链接点击链接,这与其他浏览器不同(在任何地方都可以点击文本链接或其他任何地方)因为它在链接块中),有没有任何修复(只有CSS,没有JavaScript)?

请注意,我不想指定链接或div的宽度.

Ste*_*ber 25

我遇到了同样的问题,上面没有一个解决方案适合我.我还需要链接的背景是透明的.

一个非常不舒服的解决方案,但一个完美的工作是将背景设置为透明的GIF.只需要1x1像素,因为它会重复.

#links a
{
    display: block;
    background: url(/images/interface/blank/1dot.gif);
}
Run Code Online (Sandbox Code Playgroud)

除了对服务器的一个额外请求之外,这似乎没有副作用.

  • 请注意,您可以[在CSS中对GIF的内容进行硬编码](http://css-tricks.com/snippets/html/base64-encode-of-1x1px-transparent-gif/),从而避免额外的请求在服务器上! (9认同)

vsy*_*ync 6

位置:相对; 在你的CSS #links a {}

像这样

它会解决它:)


Mar*_*son 5

将链接文本括在span元素中.然后它将接受其范围内任何位置的点击.

  • 这个解决方案的语义不仅仅是添加position:relative (7认同)

小智 5

我不明白为什么,但给锚一个背景颜色似乎解决了这个问题.