The cross browser solution that worked for me was to add an empty label (with the "checkbox_label" class) after entering the checkbox, and then apply the IT style, not the checkbox.
input[type=checkbox] + label:after { content: url(images/unchecked_after.gif); position:relative; left:0px; top:1px; z-index:100; } input[type=checkbox]:checked + label:after { content:""; } .checkbox_label { height:0px; width:0px; display:inline-block; float:left; position:relative; left:20px; z-index:100; }
user1316401
source share