Grupos de caixas de seleção e botões de opção
Permita que os usuários escolham uma ou várias opções de um grupo.
Grupos de caixas de seleção e botões de opção é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.
Caixas de seleção
As caixas de seleção permitem que os usuários escolham zero, uma ou várias opções:
<label>
<input type="checkbox" name="terms" value="agreed"> I agree to the Terms
</label>
<!-- Each checkbox is independent -->
<!-- checked attribute = pre-checked -->
<input type="checkbox" name="newsletter" value="yes" checked>Envio de caixas de seleção
As caixas de seleção só são enviadas quando estão marcadas:
<form>
<input type="checkbox" name="hobby" value="reading"> Reading<br>
<input type="checkbox" name="hobby" value="coding"> Coding<br>
<input type="checkbox" name="hobby" value="gaming"> Gaming<br>
</form>
<!-- If reading and coding are checked:
hobby=reading&hobby=coding -->
<!-- Unchecked boxes send nothing -->Grupos de caixas de seleção com fieldset
Agrupe caixas de seleção relacionadas usando um conjunto de campos e uma legenda:
<fieldset>
<legend>Select your interests</legend>
<label><input type="checkbox" name="interest" value="html"> HTML</label>
<label><input type="checkbox" name="interest" value="css"> CSS</label>
<label><input type="checkbox" name="interest" value="js"> JavaScript</label>
<label><input type="checkbox" name="interest" value="python"> Python</label>
</fieldset>Botões de opção
Os botões de opção permitem escolher exatamente uma opção de um grupo:
<fieldset>
<legend>Preferred plan</legend>
<label><input type="radio" name="plan" value="free"> Free</label>
<label><input type="radio" name="plan" value="pro"> Pro</label>
<label><input type="radio" name="plan" value="enterprise"> Enterprise</label>
</fieldset>
<!-- All radios in a group share the same name attribute -->
<!-- Selecting one deselects the others -->Atributo checked
Selecione previamente um botão de opção ou uma caixa de seleção com o atributo checked:
<fieldset>
<legend>Skill level</legend>
<label><input type="radio" name="level" value="beginner" checked> Beginner</label>
<label><input type="radio" name="level" value="intermediate"> Intermediate</label>
<label><input type="radio" name="level" value="advanced"> Advanced</label>
</fieldset>Estilização de caixas de seleção e botões de opção
Caixas de seleção personalizadas usando a técnica com label:
<label class="custom-check">
<input type="checkbox" name="agree">
<span class="checkmark"></span>
I agree
</label>
/* Hide native input, style the span: */
.custom-check input { opacity: 0; width: 0; }
.checkmark {
width: 1.25rem; height: 1.25rem;
border: 2px solid #ddd; border-radius: 3px;
display: inline-block; vertical-align: middle;
}
.custom-check input:checked + .checkmark { background: #0070f3; }Estado indeterminado
As caixas de seleção podem ter um estado indeterminado (nem marcadas nem desmarcadas):
<input type="checkbox" id="select-all">
<script>
// Set via JavaScript only -- no HTML attribute
document.getElementById('select-all').indeterminate = true;
// Visually shown as a dash (−) in most browsers
// Used for "select all" when some children are checked
</script>Botão de opção sem seleção padrão
Às vezes, é melhor não selecionar previamente um botão de opção:
- A seleção prévia indica que a opção é recomendada
- Para escolhas obrigatórias sem um padrão claro (gênero, plano), deixe sem seleção
- Adicione
requiredpara garantir que os usuários façam uma escolha explícita
<fieldset>
<legend>Gender</legend>
<label><input type="radio" name="gender" value="m" required> Male</label>
<label><input type="radio" name="gender" value="f" required> Female</label>
<label><input type="radio" name="gender" value="nb" required> Non-binary</label>
<label><input type="radio" name="gender" value="prefer_not" required> Prefer not to say</label>
</fieldset>Caixa de seleção: checked versus value
Duas informações importantes sobre o envio de caixas de seleção:
<!-- The value sent when checked: -->
<input type="checkbox" name="subscribe" value="yes">
<!-- Submits: subscribe=yes when checked -->
<!-- If value is omitted, default value is 'on' -->
<!-- JavaScript checked state: -->
const cb = document.querySelector('input[name="subscribe"]');
console.log(cb.checked); // true or false
console.log(cb.value); // 'yes' (always, even when unchecked)Navegação por teclado em grupos de botões de opção
Comportamento do teclado para grupos de botões de opção:
- Tab move o foco para dentro do grupo, até o botão selected ou o primeiro botão de opção
- As teclas de seta (↑/↓ ou ←/→) percorrem as opções
- Tab move o foco para fora do grupo, até o próximo elemento focável
Padrão de selecionar tudo
Padrão para selecionar ou desmarcar todas as caixas de seleção:
<label>
<input type="checkbox" id="select-all"> Select all
</label>
<fieldset id="items">
<label><input type="checkbox" class="item" value="1"> Item 1</label>
<label><input type="checkbox" class="item" value="2"> Item 2</label>
<label><input type="checkbox" class="item" value="3"> Item 3</label>
</fieldset>
<script>
document.getElementById('select-all').addEventListener('change', function() {
document.querySelectorAll('.item').forEach(cb => cb.checked = this.checked);
});
</script>Verificação rápida
Qual regra do atributo name faz com que os botões de opção pertençam ao mesmo grupo?
Recapitulação: caixas de seleção e botões de opção
Essenciais das caixas de seleção e dos botões de opção:
- Caixa de seleção — permite selecionar várias opções; só é enviada quando está marcada
- Botão de opção — permite selecionar exatamente uma opção; agrupado por
name - Ambos usam o atributo
checkedpara seleção prévia - Coloque-os dentro de
<fieldset>+<legend> - As teclas de seta navegam dentro de um grupo de botões de opção
Aprenda HTML com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 40
- Aulas
- 159
Perguntas Frequentes
A aula “Grupos de caixas de seleção e botões de opção” é grátis?
Sim — o texto completo de “Grupos de caixas de seleção e botões de opção” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.
O que vou aprender em “Grupos de caixas de seleção e botões de opção”?
Permita que os usuários escolham uma ou várias opções de um grupo. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar HTML Academy?
Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Grupos de caixas de seleção e botões de opção”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de HTML Academy?
Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Menus pendentes select e option
- Textarea para entrada de várias linhas
- Grupos de caixas de seleção e botões de opção
- Datalist para preenchimento automático