:only-child

A pseudo-classe (en-US) de CSS :only-child representa um elemento sem nenhum elemento-irmão. É o mesmo que :first-child:last-child ou :nth-child(1):nth-last-child(1), mas com uma especificidade mais baixa.

/* Seleciona cada <p>, mas apenas se for o */
/* único filho de seu elemento-pai */
p:only-child {
  background-color: lime;
}

Nota: Originalmente, foi definido que o elemento selecionado deveria ter um elemento-pai. A partir de Selectors Level 4, isso não é mais necessário.

Sintaxe

Error: could not find syntax for this item

Exemplos

Exemplo básico

HTML

<main>
  <div>
    <i>Eu sou um filho único solitário.</i>
  </div>

  <div>
    <i>Eu tenho irmãos.</i><br>
    <b>Eu também!</b><br>
    <span>Eu também tenho irmãos, <span>mas este é um filho único.</span></span>
  </div>
</main>

CSS

main :only-child {
  color: red;
}

Resultado

Exemplo de lista

HTML

<ol>
  <li>Primeiro
    <ul>
      <li>Essa lista tem apenas um elemento.
    </ul>
  </li>
  <li>Segundo
    <ul>
      <li>Essa lista tem três elementos.
      <li>Essa lista tem três elementos.
      <li>Essa lista tem três elementos.
    </ul>
  </li>
<ol>

CSS

li li {
  list-style-type: disc;
}
li:only-child {
  color: red;
  list-style-type: square;
}

Resultado

Especificações

Especificação Status Comentário
Selectors Level 4
The definition of ':only-child' in that specification.
Rascunho atual Não é necessário que os elementos selecionados tenham um elemento-pai.
Selectors Level 3
The definition of ':only-child' in that specification.
Recomendação Definição inicial.

Compatibilidade com navegadores

BCD tables only load in the browser

Ver também