1

我尝试添加 transition: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
}
4

2 回答 2

2

背景尚不支持过渡。图像过渡计划用于 CSS4。现在你只能转换所有谨慎的子属性,如背景颜色、背景大小、背景位置。

于 2012-07-28T22:45:27.073 回答
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
}

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

希望能帮助到你。

于 2012-07-28T23:00:57.600 回答