我试图解决CSS过渡的棘手问题。任何人?

时间:2012-07-28 22:23:18

标签: css background css-transitions

我尝试添加转换:background 1s;但菜单背景图片由于某种原因没有转换。我在那里做错了什么?

#menu{
    padding-top:18px;
    transition:background 1s;
    -moz-transition:background 1s;
}
#menu > li{
    float:left;
    padding-right:5px
}
#menu .last{
    padding-right:0;
}
#menu > li > a{
    width:188px;
    display:block;
    font-size:17px;
    color:#000;
    background:#fff;
    text-transform:uppercase;
    font-weight:400;
    background: url('../images/IMAGE_A.jpg');;
    height:70px;
    line-height:64px;
    border-top:1px solid #555;
    text-align:center;
    border-radius:4px 4px 0 0;
    -moz-border-radius:4px 4px 0 0;
    -webkit-border-radius:4px 4px 0 0;
}
#menu > li > a:hover,#menu > .active > a{
    background:#fff;
    background: url('../images/IMAGE_B.jpg');;
    background-repeat:no-repeat;
    border-color:#7DB112;
}
#menu > li > a span{
    display:block;
    position:relative;
    color:#000;
    font-family:Arial, Helvetica, sans-serif;
    font-size:17px
}

2 个答案:

答案 0 :(得分:2)

转换尚不支持后台。计划为CSS4进行图像转换。现在,您只能转换所有谨慎的子属性,如背景颜色,背景大小,背景位置。

答案 1 :(得分:0)

制作精灵图像(通过组合image_a和image_b)并使用图像位置进行播放。 类似的东西:

#menu{
    padding-top:18px;
}
#menu > li{
    float:left;
    padding-right:5px
}
#menu .last{
    padding-right:0;
}
#menu > li > a{
    transition:background-position 1s;
    -moz-transition:background-position 1s;
    width:188px;
    display:block;
    font-size:17px;
    color:#000;
    text-transform:uppercase;
    font-weight:400;
    background: url('../images/Sprite.jpg');;
    background-position: -200px 0px;
    height:70px;
    line-height:64px;
    border-top:1px solid #555;
    text-align:center;
    border-radius:4px 4px 0 0;
    -moz-border-radius:4px 4px 0 0;
    -webkit-border-radius:4px 4px 0 0;
}
#menu > li > a:hover,#menu > .active > a{
    background:#fff;
    background-position: -600px 0px;
    background-repeat:no-repeat;
    border-color:#7DB112;
}
#menu > li > a span{
    display:block;
    position:relative;
    color:#000;
    font-family:Arial, Helvetica, sans-serif;
    font-size:17px
}

另外,请确保在背景图像的同一选择器上设置了过渡属性。

希望它有所帮助。