CSS 伪类顺序
对于伪类顺序,有一个口诀是 love-hate,代表着伪类的顺序是:link、visited、focus、hover、active。
但是,是否伪类的顺序只能如此呢?为什么是这个顺序呢?
CSS 层叠中有一条法则十分重要,就是后面覆盖前面,所以伪类的顺序是需要精心考虑的。
- link 和 visited 必须在最前面,且没有先后顺序,否则 link 或 visited 的效果将被覆盖。
link 和 visited 称为静态伪类,只能应用于超链接。
- focus、hover、active 这三个伪类必须是 focus、hover、active 的顺序,因为在 focus 状态下,也需要触发 hover 和 active,而要触发 active 一定要先触发 hover,所以 active 要放在 hover 后面。
focus、hover、active 称为动态伪类,可应用于任何元素。
但 IE7- 浏览器不支持 :focus,:hover 和 :active;在 IE6- 浏览器下只支持给 a 设置。
所以,最终的顺序只有两种 :link、visited、focus、hover、active 或 visited、link、focus、hover、active。