为什么CSS过渡效果无法正常工作

4
我正在尝试添加过渡效果,但它没有生效。我在链接上添加了过渡效果,并希望在鼠标悬停状态下出现变化。我经常使用过渡效果,但有时会发生这种情况,我不知道为什么这个属性不起作用。
我更喜欢知道为什么它不起作用。
这是我的代码:
<div class="subNavigation">
                        <ul>
                            <li>درباره بانک مهر</li>
                            <li><a href="javascript:void(0)">درباره بانک مهر 1</a></li>
                            <li><a href="javascript:void(0)">درباره بانک مهر 2</a></li>
                            <li><a href="javascript:void(0)">درباره بانک مهر 3</a></li>
                            <li><a href="javascript:void(0)">درباره بانک مهر 4</a></li>
                        </ul>
                    </div>

以及CSS

.subNavigation {
 width: 900px;
 height: 274px;
 position: absolute;
 top: 40px;
 right: 0;
 padding: 30px 60px 0 0;
 }
 /* line 126, ../sass/style.scss */
 .subNavigation ul {
 float: right;
 }
 /* line 130, ../sass/style.scss */
 .subNavigation li {
 width: 153px;
 *zoom: 1;
 margin-top: 4px;
 padding-right: 2px;
 padding-bottom: 4px;
 border-bottom: 1px dotted #b4b4b4;
 }
 /* line 38, D:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-      0.12.2/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */
.subNavigation li:after {
 content: "";
 display: table;
 clear: both;
 }
/* line 138, ../sass/style.scss */
.subNavigation li:first-child {
width: 155px;
height: 24px;
margin-top: 0;
margin-bottom: 14px;
color: #f7931e;
border-bottom: 1px solid #dddddd;
padding-right: 0;
font-size: 16px;
line-height: 24px;
}
/* line 151, ../sass/style.scss */
 .subNavigation a {
  float: right;
  font-size: 13px;
   height: 24px;
   line-height: 24px;
   padding-right: 2px;
  color: #222;
  -webkit-transition: all, 0.2s, ease-in;
  -moz-transition: all, 0.2s, ease-in;
  -o-transition: all, 0.2s, ease-in;
   transition: all, 0.2s, ease-in;
   }
  /* line 160, ../sass/style.scss */
 .subNavigation a.eng {
  font-family: tahoma;
  }
 /* line 164, ../sass/style.scss */
 .subNavigation a:hover {
  padding-right: 10px;
  border-right: 4px solid #f7941d;
  color: #19ae61;
  }

The Fiddle

2个回答

12

一个简单的错误:

-webkit-transition: all, 0.2s, ease-in;
-moz-transition: all, 0.2s, ease-in;
-o-transition: all, 0.2s, ease-in;
transition: all, 0.2s, ease-in;

更改为:

-webkit-transition: all 0.2s ease-in;
-moz-transition: all 0.2s ease-in;
-o-transition: all 0.2s ease-in;
transition: all 0.2s ease-in;

演示:http://jsfiddle.net/X5UBF/1/

过渡值不是用逗号分隔的,而是一个单独的声明。如果您想声明多个过渡效果,则要使用逗号进行分隔。

请参阅W3C文档和/或CSS3.info

Value: <single-transition> [ ‘,’ <single-transition> ]*

其中 <single-transition> 是:

<single-transition> = <transition-property> <transition-duration> <transition-timing-function> <transition-delay>

因此,逗号分隔的示例将是:

transition: opacity 0.5s ease-in, width 1.5s ease-out;
/* 0.5s for an opacity transform while 1.5s for a width transform */

tanx,罗盘总是让我发疯 ;) - Kamran Asgari
@KamranAsgari 我停止使用Compass内置的mixin,因为我感觉我的手被绑住了(不知道在幕后发生了什么)。所以我最终做出了自己的_mixins.scss,在里面用我喜欢的任何名称创建我想要的东西(例如,我喜欢驼峰式的mixin名称,如borderRadius(),而不是内置的border-radius())。 - RaphaelDDL

1

过渡声明不正确:

 -webkit-transition: all 0.2s ease-in;  /* Chrome 1-25, Safari 3.2+ */
 -moz-transition: all 0.2s ease-in;  /* Firefox 4-15 */
 -o-transition: all 0.2s ease-in;  /* Opera 10.50–12.00 */
 transition: all 0.2s ease-in;  /* Chrome 26, Firefox 16+, IE 10+, Opera 12.10+ */

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接