我正在尝试创建我的第一个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>
答案 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)。
编辑:显然你可以转换渐变,而不是“无”。