在CSS動畫完成對元素運行後,應該在僞狀態(如:hover
)上指定的樣式更改是否應該工作?應該:在CSS動畫完成後懸停僞狀態樣式更改工作
編輯:也許更有針對性,我應該問:爲什麼在動畫上應用「轉發」會阻止重寫更具體的樣式更改?
編輯2:原來,這實際上是一個跨瀏覽器問題。例如。 Chrome瀏覽器(我正在運行版本38.0.2125.111)的行爲不正確,但Firefox按照規範處理它。
長話短說:根據規格(如下面chrona引用)添加!important
覆蓋應呈現樣式。但是,目前只有Firefox正確處理這個問題。
這裏是還原:
@keyframes go {
0% {
background: green;
}
100% {
background: pink;
}
}
@-webkit-keyframes go {
0% {
background: green;
}
100% {
background: pink;
}
}
.box {
animation: go 3s forwards;
-webkit-animation: go 3s forwards;
}
.box:hover {
background: orange!important;
cursor: pointer;
}
<div class="box">Hover states don't work after animation</div>
我無法找到在規範有關信息,沒有之一:http://www.w3.org/TR/css3-animations/
任何人都知道,如果a)本應有可能嗎? b)一旦動畫結束,如何讓懸浮狀態在元素上工作?
是的,無力的:hover覆蓋由前設置的值是對我最好奇的部分。 – 2014-11-06 12:04:55
爲了防止有人可以挖掘出任何官員爲什麼'forward'值通過'hover'工作阻止更改,我會暫時將標記作爲答案。 – 2014-11-06 12:06:56
另外:您修改過的代碼段在Firefox上的行爲與問題中的行爲略有不同。背景顏色懸停效果在問題版本的動畫中起作用,但直到動畫在此版本中結束。 _EDIT:_這是通過在chrona的答案中引用來解決的,它是如何工作的 – Izkata 2014-11-06 15:33:07