Also keep in mind, the label element will check the checkbox whenever it is clicked, even if the checkbox is not viewable inside of it. So on the label you can do something like label { position: relative; overflow: hidden; width: 16px; height: 16px; border: 1px solid #0f0; } and then label > input[type=checkbox] { position: absolute; left: -999px; } This will let you custom style your own …