CodeGym /Cursos /Frontend SELF PT /Pseudoclasses

Pseudoclasses

Frontend SELF PT
Nível 13 , Lição 1
Disponível

7.1 Pseudoclasses de estado

Pseudoclasses em CSS são palavras-chave especiais que são adicionadas aos seletores para indicar o estado de um elemento ou sua posição na estrutura do documento. Elas permitem aplicar estilos a elementos em determinados estados ou situações, que não podem ser especificados usando seletores comuns.

Pseudoclasses principais:

  • Pseudoclasses de estado
  • Pseudoclasses de estado estrutural
  • Pseudoclasses de formulário
  • Pseudoclasses de navegação

Sintaxe:

    
      seletor:pseudoclasse {
        propriedade: valor;
        propriedade: valor;
      }
    
  

Pseudoclasses de estado

Essas pseudoclasses são usadas para estilizar elementos de acordo com seu estado atual, por exemplo, quando o mouse é posicionado sobre ele ou um elemento está ativo:

  • :hover — aplicado quando o usuário posiciona o cursor sobre o elemento
  • :active — aplicado quando o elemento é ativado (geralmente ao clicar)
  • :focus — aplicado quando o elemento está em foco (por exemplo, ao usar o teclado)
  • :visited — aplicado a links visitados
  • :link — aplicado a links não visitados

7.2 Pseudoclasse hover

A pseudoclasse :hover é aplicada ao elemento quando o usuário posiciona o ponteiro do mouse sobre ele. É usada com frequência para alterar a aparência de links e botões ao passar o mouse.

Sintaxe:

    
      seletor:hover {
        propriedade: valor;
        propriedade: valor;
      }
    
  

Exemplo:

Este seletor altera a cor do texto e sublinha os links ao passar o mouse.

HTML
    
      <a href="#">Link Placeholder</a>
    
  
CSS
    
      a:hover {
        color: red;
        text-decoration: underline;
      }
    
  

Aplicação:

  • Melhora a interação com o usuário (UI) através de feedback visual
  • Usado para botões, links e outros elementos interativos

7.3 Pseudoclasse focus

A pseudoclasse :focus é aplicada ao elemento quando ele recebe foco. Por exemplo, ao clicar nele ou ao navegar para ele usando a tecla Tab. É mais comumente usado para inputs e outros elementos de formulário.

Sintaxe:

    
      seletor:focus {
        propriedade: valor;
        propriedade: valor;
      }
    
  

Exemplo:

Este seletor altera a cor da borda do input e remove o contorno ao receber foco.

HTML
    
      <input type="text" name="text" id="text">
    
  
CSS
    
      input:focus {
        border-color: blue;
        outline: none;
      }
    
  

Aplicação:

  • Melhora a acessibilidade das páginas web
  • Torna elementos interativos mais perceptíveis ao focar

7.4 Pseudoclasse nth-child

A pseudoclasse :nth-child é aplicada a elementos com base em sua posição entre os elementos filhos do pai. Ela aceita um argumento, que pode ser um número, palavra-chave ou expressão.

Sintaxe:

    
      seletor:nth-child(n) {
        propriedade: valor;
        propriedade: valor;
      }
    
  

Exemplo:

Este seletor permite aplicar estilos a elementos com base na sua posição entre os irmãos.

HTML
    
      <ul>
        <li>Elemento 1</li>
        <li>Elemento 2</li>
        <li>Elemento 3</li>
        <li>Elemento 4</li>
        <li>Elemento 5</li>
        <li>Elemento 6</li>
        <li>Elemento 7</li>
      </ul>
    
  
CSS
    
      /* Aplica estilos a todos os filhos ímpares */
      li:nth-child(odd) {
          background-color: lightgray;
      }

      /* Aplica estilos a todos os filhos pares */
      li:nth-child(even) {
          background-color: lightblue;
      }

      /* Aplica estilo ao segundo filho */
      li:nth-child(2) {
          color: red;
      }
    
  

Aplicação:

  • Estiliza linhas de tabelas, elementos de lista e outras estruturas repetitivas
  • Permite criar layouts e estilos complexos sem adicionar classes adicionais

7.5 Exemplos de uso de pseudoclasses

HTML
    
      <button type="button">Botão</button>
    
  
CSS
    
      button:hover, button:focus {
        background-color: darkblue;
        color: white;
      }
    
  

Estilizando linhas pares da tabela:

HTML
    
      <table>
        <tr>
          <th>Nome</th>
          <th>Quantidade</th>
          <th>Preço</th>
        </tr>
        <tr>
          <td>Produto 1</td>
          <td>5</td>
          <td>10 reais</td>
        </tr>
        <tr>
          <td>Produto 2</td>
          <td>3</td>
          <td>15 reais</td>
        </tr>
        <tr>
          <td>Produto 3</td>
          <td>8</td>
          <td>7 reais</td>
        </tr>
      </table>
    
  
CSS
    
      tr:nth-child(even) {
        background-color: #f2f2f2;
      }
    
  

Excluindo determinados elementos do estilo geral:

HTML
    
      <ul>
        <li class="list-item">Elemento 1</li>
        <li class="list-item">Elemento 2</li>
        <li class="list-item">Elemento 3</li>
        <li class="list-item">Elemento 4</li>
        <li class="list-item">Elemento 5</li>
        <li class="list-item">Elemento 6</li>
        <li class="list-item">Elemento 7</li>
      </ul>
    
  
CSS
    
      .list-item:not(:last-child) {
        border-bottom: 1px solid #ddd;
      }
    
  
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION