Been using this for a while, since `label > input... + span` are natural target paths. This way you can effectively "hide" the input and put a prefix content before the span for stylized checkbox value.
NOTE: some browsers would not allow hiding the checkbox, so in that case, setting the position and opacity are your only real options. This isn't much of an issue today, but IE6-8 were particularly nasty in various ways.