我尝试添加过渡:背景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
}
转换还不支持后台。计划为CSS4进行图像转换。现在,您只能转换所有谨慎的子属性,如背景颜色、背景大小、背景位置。
制作一个精灵图像(通过组合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
}
此外,请确保在具有背景图像的同一选择器上设置了转换属性。
希望能有所帮助。