J'ai remarqué que la modification de l'attribut filter
au survol provoque un comportement étrange dans Safari 16.2 sur macOS :
Utiliser -webkit-filter
n’aide pas non plus.
/* problem-relevant CSS */ div{ background: red; filter: grayscale(1); } div:hover{ filter: grayscale(0); } /* some further styling for readability */ div{ display: flex; justify-content:center; color: white; padding:10px; font-size:25px; }
<div>Hover Me</div>
Voici à quoi cela ressemble (GIF) :
Que peut-on faire à ce sujet ?
Cela semble être un bug de rendu du webkit.
J'ai trouvé plusieurs solutions :
transform
而不实际转换任何内容(例如scale(1)
) pour résoudre ce problème d'une manière ou d'une autretransition:0.05s
aidera (malgré la création d'une transition indésirable), toute transition plus longue fera également l'affaire (si vous souhaitez normalement mettre des transitions ici, vous ne trouverez peut-être jamais le problème)Fait amusant : Une transition encore plus courte (c'est-à-dire
0.03s
) ne résout rien.