CSS Master

(Primo) #1
Figure 1.49. Using the adjacent sibling combinator and ::before pseudo-class to create custom radio controls

Inorderforthistechniquetowork,ofcourse,ourHTMLneedstobestructured
appropriately:

■ Thelabelelementmustbeimmediatelyadjacenttoitsinputcontrol.

■ Theformcontrolmusthaveanidattributeinadditiontothenameattribute(for
example,<input type="radio" id="chocolate" name="flavor">).

■ Thelabelmusthaveaforattribute,anditsvaluemustmatchtheidoftheform
control(forexample,<label for="chocolate">Chocolate</label>).

Associatingthelabelusingforwiththeinputensuresthattheforminputwillbe
selectedwhentheuserclicksortapsthelabeloritschildpseudo-element(::before).

:in-range and :out-of-range
The:in-rangeand:out-of-rangepseudo-classescanbeusedwithrange,number,
anddateinputcontrols.Using:in-rangeand:out-of-rangerequiressettingmin
and/ormaxattributevaluesforthecontrol.Here’sanexampleusingthenumberinput
type:

<p>
<label for="picknum">Enter a number from 1-100</label>
<input type="number" min="1" max="100" id="picknum" name=
➥"picknum" step="1">
</p>

Let’saddalittlebitofCSStochangestylesifthevaluesarewithinoroutsideof
ourrangeofoneto100:

66 CSS Master

Free download pdf