Checkboxes in html forms don't have implicit labels with them. Adding an explicit label (some text) next to it doesn't toggle the checkbox.
Set the CSS "display" property for the label to be a block element and use that instead of your div - it keeps the semantic meaning of a label while allowing whatever styling you like.
<label for="test" style="width: 100px; height: 100px; display: block; background-color: #e0e0ff;"> A ticky box! <input type="checkbox" id="test" /> </label>