我有一个按钮,我已经添加了一个渐变。
以下是代码:
.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;
,但这没有做到。
答案 0 :(得分:2)
渐变为image values,因此单独设置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;
}