Pular para o conteúdo
~/.primo-academy.sh
☰ Aulas · CSS Fundamentos: a Base que Tudo Sustenta · 0/15
Recomendado: essencial

Combinadores: Descendente, Filho e Irmão

1 min de leitura

fonte

Combinadores são os espaços e sinais entre seletores. Eles dizem "este elemento dentro de outro", "este é filho direto", ou "este vem depois de".

Descendente (um espaço)

.card p { color: gray; }

Seleciona todo <p> que está dentro de .card, em qualquer nível de profundidade.

<div class="card">
  <p>Esse aqui pega.</p>          <!-- sim -->
  <div>
    <p>Esse aqui também pega.</p> <!-- sim, neto -->
  </div>
</div>
<p>Esse NÃO pega.</p>             <!-- fora do card -->

O espaço é o combinador mais comum — é o "qualquer descendente".

Filho direto (>)

.card > p { color: gray; }

Só pega o <p> que é filho direto do .card. Neto, bisneto — não pega.

<div class="card">
  <p>Pega.</p>             <!-- sim, filho direto -->
  <div>
    <p>NÃO pega.</p>       <!-- neto -->
  </div>
</div>

Útil quando a hierarquia importa (estilizar só itens diretos de um menu, por exemplo).

Irmão adjacente (+)

h1 + p { font-size: 20px; }

Seleciona o primeiro elemento que vem logo depois do h1, desde que sejam irmãos (mesmo pai).

<h1>Título</h1>
<p>Esse aqui pega - é o primeiro irmão depois do h1.</p>
<p>Esse não pega - tem outro p antes dele.</p>

Clássico: dar um espaço maior no parágrafo que vem logo depois de um título (em vez de mexer em todos os parágrafos da página).

Irmão geral (~)

h1 ~ p { color: gray; }

Pega todos os <p> que vêm depois do h1 como irmãos, não só o primeiro.

Combinando combinadores

Você pode misturar tudo:

nav.menu > ul > li:first-child a { font-weight: bold; }

"a dentro do primeiro li dentro da ul dentro do nav.menu".

  • Descendente (espaço): A B — B em qualquer nível dentro de A.
  • Filho (>): A > B — B é filho direto de A.
  • Irmão adjacente (+): A + B — B vem logo depois de A.
  • Irmão geral (~): A ~ B — B vem depois de A, em qualquer posição.

Dica: comece com descendente (espaço). Se o resultado pegar mais coisa do que queria, troque pra > ou + pra apertar o alvo.

No próximo, vamos colorir tudo: as maneiras de escrever cores em CSS.

// recursos

// avaliação da trilha

ainda sem avaliações