我应该在哪里报告错误 - Firefox或Internet Explorer?

问题描述 投票:0回答:2

Internet Explorer的行为与Firefox,Chrome,Opera,Safari不同。看到我的问题:HTML link with padding and CSS style active does not work

这是未定义的行为吗?或者我需要报告错误。如果以后,哪个浏览器做得对?

这是一个测试代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <title>css active padding href problem</title>
        <style type="text/css">
            a{
                background:#CCC;
                border:1px solid #666;
                padding:0 35px 0 0;
            }
            a:active{
                padding:0 0 0 35px;
            }
        </style>
    </head>
    <body>
        <div>
            <p>Click on <i>Stack</i> - href does not work.
               Click on <i>Overflow</i> - href works.
               All browsers are affected.
               Except IE.</p>
            <a href="https://stackoverflow.com/">StackOverflow</a>
        </div>
    </body>
</html>
html css anchor padding w3c
2个回答
3
投票

我认为IE做错了。 a:当鼠标按钮关闭时,活动正在工作,但在鼠标按钮再次启动之前,href不会关闭。

伪代码:

onmousedown(e) {
  setCssAsActive();
}
onmouseup(e) {
  activateHref();
}

如果鼠标在元素之外上升,则没有任何反应。尝试单击链接,然后将鼠标拖离链接,然后释放按钮。什么都不应该发生。

这就是您的代码中发生的事情。当您单击堆栈文本时,链接会从指针移开,当您释放按钮时,链接不再位于指针下方。它在发布时间向后移动,但是为时已晚。

因此,我认为IE做错了。


0
投票

我认为主要问题是在IE框模型中,如http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug所述

正如链接所说,IE包含框中的填充,这就是链接在IE上运行而不是任何其他浏览器的原因,这可以通过在上面的示例中将填充更改为边距来证明,或者在这里http://jsfiddle.net/S5dGw/

虽然大多数人(包括我自己)会说这是一个IE漏洞,但有些人会说这是一个带有规格的W3C问题。 http://www.crossbrowser.net/82/internet-explorer-box-model-is-not-a-bug/ scoff。

不用担心CSS3完全支持(它是遥远的未来:)),它将具有box-sizing属性,这将解决这个问题,见下文:

http://www.w3.org/TR/css3-ui/#box-sizing

© www.soinside.com 2019 - 2024. All rights reserved.