0Pricing
CSS Academy · Aula

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

  1. Aninhamento de variáveis e parciais
  2. Mixins e inclusões
  3. Seletores de extensão e marcadores de posição
  4. Funções Sass e fluxo de controle
← Voltar para CSS Academy