Skip to main content
← πŸ“„ HTML & the platformΒ·Module A3 Β· Lesson 9
TaskBuild a billing-cycle picker: two radios with name='cycle', values 'monthly' and 'yearly'. Yearly is pre-selected (checked). Each has an inline label.

<input type=radio>: exclusive choice

75 XP6 min
Theory

Radio = exactly one choice from a group

<input type="radio" id="m" name="plan" value="monthly" />
<label for="m">$9/mo</label>

<input type="radio" id="y" name="plan" value="yearly" checked />
<label for="y">$90/yr (save 17%)</label>
  • All radios with the same name are mutually exclusive β€” clicking one unchecks the others.
  • value is what gets submitted (plan=yearly). Text is what the user reads.
  • checked on one of them is the default.

When to use radio vs select

Use radio whenUse select when
2-5 options6+ options
Choices are short (1-3 words each)Choices are long or wordy
All choices should be visible at onceSaving vertical space matters

Plan picker, gender, size (S/M/L), payment method β€” radio. Country, year, language β€” select.

Layout

Radios are inline by default. For a vertical stack:

label { display: block; padding: 4px 0; }

For "card-style" radios (where the whole card is clickable), put the radio inside the label:

<label>
  <input type="radio" name="plan" value="yearly" />
  <strong>Yearly</strong>
  <p>$90/year β€” save 17%</p>
</label>
πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.