0

:active 代码适用于所有浏览器,除了 IE8(不是 9)。我已经查看了其他类似的问题,并尝试了不同的方法。这是代码:

HTML:

<div id="main" style="color:white;font-family:Georgia">
   <div id="button" onmouseup="someFunction()"></div>
   <!-- other things -->
</div>

CSS:

#button
{
  position: relative;
  width: 241px;
  height: 41px;
  background-image:url("images/buttonStatic.png");
  display: none;
}

#button:hover
{
  background-image:url("images/buttonHover.png");
}

#button:active
{
  background-image:url("images/buttonActive.png");
}

该按钮显示正确,当我将鼠标悬停在它正确时会更改为第二个按钮,但当我单击它时不会更改为第三个按钮。

4

2 回答 2

1

我刚刚在 IE8 中尝试过,效果很好。确保您的 DOCTYPE 规范声明正确<!doctype html>,并可能尝试放入 IE 兼容性元标记,类似于<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>.

附带说明一下,您不应该将<DIV>元素用作这样的按钮。你应该使用<button><a>抑制行为。

编辑

这是我的代码...

<!doctype html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
        <title>Active Button</title>
        <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?3.5.0/build/cssreset/cssreset-min.css&3.5.0/build/cssfonts/cssfonts-min.css"/>
        <style type="text/css">
            .button {
                padding: 4px 12px;
                border: solid #555 1px;
                background-color: #ddd;
                }
            .button:hover {
                background-color: #eee;
                }
            .button:active {
                background-color: #09c;
                color: #fff;
                }

            .frame {
                padding: 2em;
                }
        </style>
    </head>
    <body>
        <div class="frame">
            <button class="button">I'm a Button</button>
        </div>
    </body>
</html>
于 2012-05-02T20:01:04.987 回答
0

您的代码很好,这是 IE8 中的一个已知错误(抱歉,差异)。

于 2012-05-02T19:47:14.357 回答