Maison > Questions et réponses > le corps du texte
P粉2266425682023-08-24 11:27:23
Une solution consiste à transformer la position de l'arrière-plan pour créer un effet de changement de dégradé : http://sapphion.com/2011/10/css3-Gradient transition et position d'arrière-plan/
#DemoGradient{ background: -webkit-linear-gradient(#C7D3DC,#5B798E); background: -moz-linear-gradient(#C7D3DC,#5B798E); background: -o-linear-gradient(#C7D3DC,#5B798E); background: linear-gradient(#C7D3DC,#5B798E); -webkit-transition: background 1s ease-out; -moz-transition: background 1s ease-out; -o-transition: background 1s ease-out; transition: background 1s ease-out; background-size:1px 200px; border-radius: 10px; border: 1px solid #839DB0; cursor:pointer; width: 150px; height: 100px; } #DemoGradient:Hover{ background-position:100px; }
<div id="DemoGradient"></div>
P粉7879344762023-08-24 09:43:10
Les dégradés ne prennent pas encore en charge les transitions (bien que la spécification actuelle indique qu'ils devraient prendre en charge les transitions de type dégradé à dégradé via interpolation.).
Si vous souhaitez un effet de fondu avec un dégradé d'arrière-plan, vous devez définir la opacité sur l'élément conteneur et "transitionner" l'opacité.
(Il existe déjà certaines versions de navigateur qui prennent en charge les transitions dégradées (par exemple IE10. J'ai testé les transitions dégradées dans IE en 2016 et elles semblaient fonctionner à l'époque, mais mon code de test ne fonctionne plus.)
Mise à jour : octobre 2018 Il est désormais confirmé que les transitions dégradées avec une nouvelle syntaxe sans préfixe [par exemple Radial-gradient(...)] fonctionnent (à nouveau ?) sur Microsoft Edge 17.17134. Je ne sais pas quand cela a été ajouté. Ne fonctionne toujours pas sur les derniers Firefox et Chrome/Windows 10.
Mise à jour : décembre 2021 La solution de contournement @property fonctionne désormais dans les navigateurs récents basés sur Chromium (mais ne fonctionne pas dans Firefox). Voir (et voter) la réponse de @mahozad ci-dessous (ou YMMV ci-dessus).