Seletores de extensão e marcadores de posição
Compartilhe estilos entre seletores usando @extend e seletores de marcador de posição silenciosos.
Seletores de extensão e marcadores de posição é uma aula grátis de CSS 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 CSS Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CSS Academy inclui 4 aulas no total.
@extend no Sass
@extend permite que um seletor herde todos os estilos de outro. Em vez de duplicar código, a extensão cria um conjunto de regras compartilhado no CSS compilado.
<div class="error">Error message</div>
<div class="critical-error">Critical error message</div>
Seletores de espaço reservado
Um seletor de espaço reservado (prefixado com %) define um bloco de estilos que nunca é compilado sozinho — somente quando é estendido. Ele não gera CSS, a menos que algo o estenda.
<div class="product-card">Product card</div>
<div class="profile-card">Profile card</div>
Por que usar espaços reservados em vez de classes
Estender uma classe real adiciona todo o contexto do seletor dessa classe à saída compilada. Os espaços reservados são mais limpos — geram seletores agrupados somente para os seletores que os estendem.
Saída compilada de @extend
Quando vários seletores estendem o mesmo espaço reservado, o Sass os agrupa em uma regra separada por vírgulas:
<div class="product-card">Product card</div>
<div class="profile-card">Profile card</div>
Armadilhas de @extend
@extend tem limitações importantes:
- Não pode ser usado dentro de consultas de mídia
- Pode produzir seletores agrupados grandes e inesperados quando há cadeias de extensões
- Torna mais difícil rastrear o CSS compilado até os arquivos de origem
Compromissos entre @extend e misturas
Comparação:
@extend: CSS menor (regras compartilhadas), mas com cadeias complexas de seletores e limitações em consultas de mídia@mixin: duplica declarações, mas é mais previsível e pode ser usado dentro de consultas de mídia
A mistura geralmente é melhor
Na prática moderna do Sass, as misturas geralmente são preferidas a @extend. HTTP/2 e a compressão gzip tornam a duplicação de declarações menos importante, enquanto a facilidade de depuração das misturas compensa a diferença mínima no tamanho do CSS.
Quando @extend faz sentido
@extend (com espaços reservados) é apropriado quando:
- Vários seletores realmente compartilham o mesmo estado semântico (por exemplo, estados de erro)
- Você não está dentro de uma consulta de mídia
- Os estilos básicos são estáveis e bem definidos
Espaços reservados e tematização
Os espaços reservados funcionam bem para conjuntos de utilitários semelhantes a redefinições que vários componentes herdam:
<a href="#" class="skip-link">Skip to content</a>
<span class="sr-label">Screen reader label</span>
Consideração sobre obsolescência
Alguns guias de estilo e equipes proíbem @extend completamente devido à sua complexidade e ao excesso de seletores que ele pode causar. Conheça os compromissos e siga as convenções da sua equipe.
Verificação rápida
Qual é a diferença entre estender uma classe comum e estender um seletor de espaço reservado (%)?
Recapitulação
@extend permite que um seletor herde os estilos de outro, agrupando seletores no CSS compilado. Os espaços reservados (%name) não geram nada até serem estendidos — são mais limpos do que estender classes reais. Evite @extend dentro de consultas de mídia. No Sass moderno, as misturas geralmente são preferidas a @extend por sua previsibilidade e facilidade de depuração.
Perguntas Frequentes
A aula “Seletores de extensão e marcadores de posição” é grátis?
Sim — o texto completo de “Seletores de extensão e marcadores de posiçã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 CSS Academy, atualize para CoddyKit PRO. O curso de CSS Academy inclui 4 aulas no total.
O que vou aprender em “Seletores de extensão e marcadores de posição”?
Compartilhe estilos entre seletores usando @extend e seletores de marcador de posição silenciosos. Você pratica CSS 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 CSS Academy?
Nenhuma experiência prévia é necessária. CSS 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 “Seletores de extensão e marcadores de posiçã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 CSS Academy?
Sim. Cada aula de CSS 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
- Aninhamento de variáveis e parciais
- Mixins e inclusões
- Seletores de extensão e marcadores de posição
- Funções Sass e fluxo de controle