5

好吧,这将是一个有趣的...

几乎我似乎遇到了一个有趣的 IE 错误(功能),涉及跨度位于锚点内时,例如。

<a href='#'>
    <span style="float:left;">Super cool link</span>
    <span style="float:right;">10</span>
</a>

在 IE 中,您似乎可以左键单击,但无法右键单击该项目并获取链接菜单,此问题似乎在 Google 的服务中也存在,例如。

IE 错误示例

我想知道是否有人可以阐明

  1. 发生这种情况的原因
  2. 对此的解决方案或解决方法

到目前为止,我已经尝试&nbsp;在锚点中添加 a 并摆弄 z-indexes 无济于事。

我能找到的唯一解决方案/解决方法是,如果您删除 Doctype,问题似乎就消失了。(不会发生)

忍者编辑 - 您似乎也无法按 CTRL + 单击

好的另一个编辑:

看起来像display: block;跨度杀死它 - http://jsfiddle.net/vdfhz/4/

4

5 回答 5

1

您的锚元素的 hasLayout(IE 属性)为 false。

当您在 hasLayout=false 的锚点中只有 hasLayout=true 的元素时,就会出现此问题。

a *{float:left;}

演示(在 IE 中运行):http: //jsfiddle.net/52A6L/(注意链接周围的边框,这是您的可点击区域)

关于 hasLayout: http: //msdn.microsoft.com/en-us/library/ie/ms530764 (v=vs.85).aspx

您可以通过为锚点设置布局或不为跨度设置布局来解决这种情况。没有跨度的布局:http: //jsfiddle.net/52A6L/1/ 有锚的布局:http: //jsfiddle.net/52A6L/2/

这些例子只是例子。请参阅 MSDN 上的文档并选择对其余布局造成最少麻烦的方法。

于 2013-01-10T02:11:24.867 回答
1

好的,回答我自己的问题,应该花更多时间在上面。

看起来如果除了display: inline;跨度之外还有其他任何东西,它就不起作用。

http://jsfiddle.net/vdfhz/9/

感谢大家的尝试,希望这对将来的人有所帮助

于 2012-11-29T04:12:17.197 回答
0

首先我需要说我无法测试以下信息是否会对您有所帮助,因为我现在没有 IE。

zoom : 1 但是,如果您添加到行为错误的元素,IE 中的许多错误都可以解决 。

有时可能导致 IE 中的错误行为的另一件事是,当元素被呈现为内联元素内的块元素时。因此,如果<a>仍然是内联的并且<span>呈现为块元素,这可能是您的问题的原因。

于 2013-01-09T21:59:11.413 回答
0

你总是可以使用 display:inline-block; 只是为了安全起见。

此外,如果您在包装元素(如 a 标签)中有浮动元素,则需要将其清除。

因此,一种快速而肮脏的方法是:

<a href='#'>
    <span style="float:left;">Super cool link</span>
    <span style="float:right;">10</span>
    <div style="clear:both;"></div>
</a>

希望这会有所帮助。

于 2013-01-09T21:47:51.000 回答
0

不知道为什么它会关闭,但是使用段落标签怎么样?

于 2012-11-29T03:46:44.847 回答