为什么我的背景转换不起作用?

时间:2012-10-10 07:23:55

标签: css css3 css-transitions

我正在尝试创建我的第一个css-transitions,但它不起作用。我尝试过使用短代码,将转换放在.btn-zen-inverse:hover中。为什么不工作? (在最新版本的chrome中测试)

    .btn {
     color: white;
     font-family: 'ZLight';
     border: 2px solid white !important;
     box-shadow: 0 0 6px rgba( 12, 41, 63, 0.3);
     text-shadow: none;
     background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.21) 100%);
     /* FF3.6+ */
     
     background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.21) 100%);
     /* Chrome10+,Safari5.1+ */
     
     background: -o-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.21) 100%);
     /* Opera 11.10+ */
     
     background: -ms-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.21) 100%);
     /* IE10+ */
     
     background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.21) 100%);
     /* W3C */
     
     filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#6bffffff', GradientType=0);
     /* IE6-9 */
     
     padding: 3px;
 }
 .btn:hover {
     transition: background-image 0.5s;
     transition: background-color 0.5s;
     -moz-transition: background-image 0.5s;
     /* Firefox 4 */
     
     -webkit-transition: background-image 0.5s;
     /* Safari and Chrome */
     
     -webkit-transition: background-color 0.5s;
     /* Safari and Chrome */
     
     -o-transition: background-image 0.5s;
     /* Opera */
     
     color: white;
 }
 .btn-zen-inverse {
     background-color: #273032;
 }
 .btn-zen-inverse:hover {
     background-image: none;
     background-color: #273032;
 }
<a class="btn btn-zen-inverse btn-large">
    <span>Prova Zenconomy Gratis</span>
</a>

1 个答案:

答案 0 :(得分:3)

首先,您的转换定义需要是基类定义的一部分

即:

div {
   transition: background-color 0.5s;
}

而不是:

/* this is wrong */
div:hover {
   transition: background-color: 0.5s;
}

并且实际更改“效果”(如果您愿意)将被置于悬停伪类

中 像这样:

div:hover {
    background-color: red;
}

和您的基类定义:

div {
    background-color: white;
}

话虽这么说,我99.7%肯定你不能分开背景“短手”的风格。尝试在基类和伪类定义中分离您尝试转换的各个样式(即:background-color和background-image)。

编辑:显然你可以转换渐变,而不是“无”。