任何使用*選擇的使繪製到顯著更長的時間,爲每個頁面上的元素將匹配一個額外的項目,一個是它的選擇是不足夠具體,以需要更多的處理能力來發現。它增加了CSS文件的解析時間,以及渲染頁面本身之前的延遲。瀏覽器在某種程度上有辦法彌補代碼,但即使在更好的瀏覽器上,它仍然會很痛苦。
在你的情況下,你選擇的樣式涉及僞類懸停,活動等等。這些都是基於事件的,所以你不僅要通過整個文檔閱讀超過必要的內容,你基本上是對它們有約束力的事件,這將需要存儲在內存中。
添加到該樣式本身就是一個過渡,而且也當這些事件被稱爲需要額外的處理能力。
此外,將應用到僞類的轉換意味着它實際上不會工作,因爲直到背景顏色已經改變,纔會應用轉換,除了[href]項目從*:鏈接選擇器匹配它。
此代碼是便宜得多,而且會實現什麼,似乎你想做的事:
a[href] {
transition: color .25s linear, background-color .25s linear, border-color .25s linear;
}
a[href]:hover, a[href]:active, a[href]:focus {
background-color: /* New colour */
border-color: /* New colour */
color: /* New colour */
}
即使是這樣,我有理由相信,你可能不需要關注的焦點,也許活躍僞類。
轉換是基於每個元素定義的。您的選擇器可以很容易地簡化爲'*',只要您在這些狀態的相應屬性中定義了一些更改,那麼您分配的過渡將適用於任何這些僞類。 – BoltClock