Bram Vanroy
Bram Vanroy

Reputation: 28437

::after on :hover does not work in IE

I have found some strange behaviour in Internet Explorer (IE10 and also when emulating all versions that support ::after). When applying the pseudo-element to a hover state of an element (.element:hover::after) it does not work in IE, but it does in all other major browsers.

http://jsfiddle.net/BramVanroy/9jpeZ/1/

#d1::after { /* Works in IE */
  content: "no hover needed";
  border: 1px solid blue;
  display: block;
}

#d2:hover::after { /* Does not work in IE */
  content: "Y U NO WORK IN IE";
  border: 1px solid blue;
  display: block;
}

Is there a CSS fix available for this? (No JS/jQuery.)

Upvotes: 11

Views: 8926

Answers (2)

Suzie K
Suzie K

Reputation: 11

I had an instance where this wasn't working in IE as well, When I switched the order of ":hover" and ":after" in my style sheet from

    .myclassname::after:hover

to

    .myclassname:hover::after

I was able to get the desired result, all the way back to IE9 (didn't test anything lower)

Upvotes: 0

jaypeagi
jaypeagi

Reputation: 3141

This seems to be a bug in IE10 (even when it emulates other versions).

I have, though, found a workaround. If you add an empty CSS rule for #d2:hover, it will then listen to #d2:hover::after as shown in this JSFiddle.

Upvotes: 21

Related Questions