I am trying to style a custom checkbox on a form; my HTML looks something like this:
<form id="contact">
<input type="checkbox" id="option1" />
<label for="option1">Option</label>
</form>
My CSS looks something like this:
form input[type="checkbox"] {
position: absolute;
left: 0;
top: 0;
opacity: 0.2;
}
form label {
padding-left: 20px;
position: relative;
}
form label:before {
content: "";
width: 20px;
height: 20px;
position: absolute;
left: -10px;
border: 1px solid #000;
}
I wanted to add a background color when the checkbox is ticked so I added this rule:
input[type="checkbox"]:checked + label:before {
background-color: #ccc;
}
Which works like I wanted to, but I need to be specific only for the rule to work on a contact form, so I changed it to:
#contact input[type="checkbox"]:checked + #contact label:before {
background-color: #ccc;
}
This time it does not work. The background does not change when the checkbox is ticked.
My question is what is wrong with the CSS? What am I missing?