Hide the pure css checkbox and use a pseudo-element to make a fake checkbox.
Pseudo-elements (::after) only work on elements that have content, so won't work on <input> elements. (http://www.w3.org/TR/CSS21/generate.html) Use a span and a ::before pseudo-element to insert a checkbox.
Place the input element inside the label so that clicking the label selects the input. (http://www.w3.org/wiki/HTML/Elements/label)
Using the checkbox Bootstrap provides as a font icon, but you can add any font, graphic or icon you like.
A Pen by GP Gooiker on CodePen.