Вот тема по этому поводу (english)
http://stackoverflow.com/questions/6542212/use-css3-transitions-with-gradient-backgrounds
Речь идет о том, что вы и обнаружили - transition: gradient пока не реализовано.
01. Один из предлагаемых по этой ссылке вариантов - использовать анимаwb. фоновой картинки, которая сама по себе и есть гдадиентный переход.
02. Могу предложить еще такой вариант. Взять два контейнера (дива, к примеру). Можно использовать плавное изменение background-color нижнего контейнера, а эффект градиента эмулировать наложением прозрачного (rgba) градиента у верхнего - от прозрачного к белому, от прозрачного к черному и т.п.
Иначе говоря, что то типа такого:
Код |
---|
<html>
<head>
<title>Test</title>
<style type="text/css">
#color {
width: 200px;
height: 200px;
margin: 50px auto 0 auto;
background: black;
-moz-transition: background-color 0.7s;
-webkit-transition: background-color 0.7s;
-o-transition: background-color 0.7s;
transition: background-color 0.7s;
}
#color:hover {
background: red;
}
#gradient {
width: 200px;
height: 200px;
background: -moz-linear-gradient(rgba(255,255,255,0.9), transparent);
background: -webkit-linear-gradient(rgba(255,255,255,0.9), transparent);
background: -o-linear-gradient(rgba(255,255,255,0.9), transparent);
background: -ms-linear-gradient(rgba(255,255,255,0.9), transparent);
background: linear-gradient(rgba(255,255,255,0.9), transparent);
}
</style>
</head>
<body>
<div id="color">
<div id="gradient"></div>
</div>
</body>
</html> |