I'd followI'd follow the advice of SW4's answer. Not anymore: Volomike's answer is far superior to all the advice ofanswers here SW4's answer –(note my suggested improvement in the comment to the answer). Proceed reading this answer if you are curious about alternative approaches, which this answer comments.
First of all, hide the checkbox and to cover it with a custom span, suggesting this HTML: