2

我有一个按钮,并为其添加了渐变。

这是代码:

.mybutton {
    background: #258dc8; /* Old browsers */
    background: -moz-linear-gradient(top,  #258dc8 0%, #258dc8 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#258dc8), color-stop(100%,#258dc8)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  #258dc8 0%,#258dc8 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  #258dc8 0%,#258dc8 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  #258dc8 0%,#258dc8 100%); /* IE10+ */
    background: linear-gradient(to bottom,  #258dc8 0%,#258dc8 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#258dc8', endColorstr='#258dc8',GradientType=0 ); /* IE6-9 */
}

我的问题是,在悬停状态下,我想摆脱渐变,只使用纯色背景色。

.mybutton:hover {
    background-color: #333333;
}

由于某种原因,这不起作用,因为它没有摆脱渐变。我能够改变渐变的唯一方法是添加另一个渐变。

有没有办法禁用渐变?

我也尝试过background: none;,但这并没有做到。

4

1 回答 1

2

渐变是图像值,因此background-color单独设置不会影响渐变。您将特别想要覆盖该background-image属性(以及filter在您使用该属性时):

.mybutton:hover {
    background-color: #333333;
    background-image: none;
    filter: none;
}

如果您使用简写background: none,您将同时设置颜色和图像(none映射到background-image并省略颜色设置为transparent),因此您将获得透明背景。

当然,您可以使用简写来仅声明颜色,并且图像将隐式为none

.mybutton:hover {
    background: #333333;
    filter: none;
}
于 2012-08-04T21:10:42.797 回答