Why does the hover pseudo-class override the active pseudo-class

后端 未结 7 1386
不思量自难忘°
不思量自难忘° 2020-12-30 01:17

The title basically says it all.

Suppose I have an element which I want to change color on :hover, but while clicked, I want it to swit

7条回答
  •  自闭症患者
    2020-12-30 02:11

    EDIT:

    Sorry, I misunderstand the question.

    Basically when you are in active state (with a mouse pointer) you are actually in hover state too. So based on CSS rules it would read the last one in stylesheet.

    When you hover over a link and hold down the mouse key It's like this if we take pseud classes as normal classes :

    
    

    So if your css was

    .active{color:green}
    .hover{color:red}
    

    it would apply red

    but if your css was

    .hover{color:red}
    .active{color:green}
    

    It would apply green

    From W3C

    a:link    { color: red }    /* unvisited links */
    a:visited { color: blue }   /* visited links   */
    a:hover   { color: yellow } /* user hovers     */
    a:active  { color: lime }   /* active links    */
    

    Note that the A:hover must be placed after the A:link and A:visited rules, since otherwise the cascading rules will hide the 'color' property of the A:hover rule. Similarly, because A:active is placed after A:hover, the active color (lime) will apply when the user both activates and hovers over the A element.

提交回复
热议问题