Creating Image-Based Checkboxes with Pure Semantic HTML/CSS
Instead of relying on pre-made solutions, you can implement this feature with purely semantic HTML and CSS, fostering your understanding of CSS operations.
Step 1: Semantic HTML
Define distinct id attributes for your checkboxes and wrap them in
Example:
<input type="checkbox">
Step 2: Hiding the Checkbox
Apply CSS to conceal the checkbox, e.g., display: none;.
Step 3: Styling the Visual Checkbox
Employ CSS's ::before pseudo element to create a visual representation of the checkbox:
label::before { background-image: url(unchecked.png); }
Step 4: Implementing Checked State
Modify the styles when the checkbox is checked, using CSS's :checked pseudo selector:
:checked + label::before { background-image: url(checked.png); }
Remember, the adjacent sibling selector ensures that style changes apply only to labels immediately following the hidden checkbox.
Step 5: Position, Dimensions, and Transitions
Position the label correctly, assign appropriate dimensions and apply smooth transitions to enhance the user experience.
Example (JavaScript Snippet):
ul { list-style-type: none; } li { display: inline-block; } input[type="checkbox"][id^="cb"] { display: none; } label { border: 1px solid #fff; padding: 10px; display: block; position: relative; margin: 10px; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } label::before { background-color: white; color: white; content: " "; display: block; border-radius: 50%; border: 1px solid grey; position: absolute; top: -5px; left: -5px; width: 25px; height: 25px; text-align: center; line-height: 28px; transition-duration: 0.4s; transform: scale(0); } label img { height: 100px; width: 100px; transition-duration: 0.2s; transform-origin: 50% 50%; } :checked+label { border-color: #ddd; } :checked+label::before { content: "✓"; background-color: grey; transform: scale(1); } :checked+label img { transform: scale(0.9); box-shadow: 0 0 5px #333; z-index: -1; }
The above is the detailed content of How to Create Image-Based Checkboxes Using Pure Semantic HTML and CSS?. For more information, please follow other related articles on the PHP Chinese website!