CodeGym /Curso Java /Frontend SELF PT /Combinação de pseudoclasses

Combinação de pseudoclasses

Frontend SELF PT
Nível 30 , Lição 3
Disponível

8.1 Conceitos básicos

Combinar pseudoclasses e pseudo-elementos em CSS permite criar seletores poderosos e flexíveis para estilizar elementos, dependendo do seu estado, estrutura e conteúdo. Isso abre muitas possibilidades para criar estilos complexos e dinâmicos que melhoram a interface do usuário e a experiência de interação com a página da web.

Noções básicas de combinação

Pseudoclasses

As pseudoclasses são indicadas por um único dois-pontos (:) e são aplicadas aos elementos dependendo do seu estado ou posição. Por exemplo:

  • :hover — aplicado quando o cursor passa sobre o elemento
  • :first-child — seleciona o primeiro elemento filho do pai

Pseudo-elementos

Pseudo-elementos são indicados por dois-pontos duplos (::) e são usados para estilizar partes de elementos ou adicionar conteúdo. Por exemplo:

  • ::before — adiciona conteúdo antes do elemento
  • ::first-letter — estiliza a primeira letra do elemento

Combinação

Pseudoclasses e pseudo-elementos podem ser combinados para criar seletores complexos que permitem aplicar estilos a elementos com base em seu estado e estrutura.

Sintaxe:

    
      seletor:pseudoclasse::pseudo-elemento {
        propriedades: valores;
      }
    
  

8.2 Combinação para interatividade

Exemplo 1: Estilização da primeira letra ao passar o mouse

Neste exemplo, a primeira letra do parágrafo é aumentada e colorida de vermelho quando o cursor passa sobre o parágrafo:

CSS
    
      /* Estilização da primeira letra do parágrafo ao passar o mouse */

      p:hover::first-letter {
        font-size: 2em;
        color: #e74c3c;
      }
    
  
HTML
    
      <p>Hover over this paragraph to see the first letter change.</p>
    
  

Exemplo 2: Adição de conteúdo antes do link no foco

Neste exemplo, um ícone é adicionado antes do link e colorido de azul quando o link está em foco:

CSS
    
      /* Adição de ícone antes do link no foco */

      a:focus::before {
        content: "🔗 ";
        color: #3498db;
      }
    
  

8.3 Combinação para estilização de estrutura

Exemplo 3: Estilização do primeiro parágrafo dentro do div com adição de conteúdo

Neste exemplo, a primeira linha do primeiro parágrafo dentro do div é destacada em negrito e colorida de verde:

CSS
    
      /* Estilização da primeira linha do primeiro parágrafo dentro do div */

      div p:first-child::first-line {
        font-weight: bold;
        color: #2ecc71;
      }
    
  

Exemplo 4: Adição de elemento decorativo após o último item da lista

Neste exemplo, um elemento decorativo é adicionado após o último item da lista e colorido de vermelho:

CSS
    
      /* Adição de elemento decorativo após o último item da lista */

      ul li:last-child::after {
        content: "❦";
        display: inline-block;
        margin-left: 10px;
        color: #e74c3c;
      }
    
  

8.4 Combinação para condições complexas

Exemplo 5: Estilização de itens pares da lista ao passar o mouse

Neste exemplo, itens pares da lista recebem um fundo cinza claro e texto azul ao passar o mouse:

CSS
    
      /* Estilização de itens pares da lista ao passar o mouse */

      ul li:nth-child(even):hover {
        background-color: #f0f0f0;
        color: #3498db;
      }
    
  

Exemplo 6: Estilização de links ativos que já foram visitados

Neste exemplo, links que foram visitados e estão em estado ativo são coloridos de laranja e sublinhados:

CSS
    
      /* Estilização de links ativos que já foram visitados */

      a:visited:active {
        color: #e67e22;
        text-decoration: underline;
      }
    
  

8.5 Exemplo de implementação completa

CSS
    
      /* Estilização da primeira linha do primeiro parágrafo dentro do div */

      div p:first-child::first-line {
        font-weight: bold;
        color: #2ecc71;
      }

      /* Adição de elemento decorativo após o último item da lista */

      ul li:last-child::after {
        content: "❦";
        display: inline-block;
        margin-left: 10px;
        color: #e74c3c;
      }

      /* Estilização de itens pares da lista ao passar o mouse */

      ul li:nth-child(even):hover {
        background-color: #f0f0f0;
        color: #3498db;
      }

      /* Adição de ícone antes do link no foco */

      a:focus::before {
        content: "🔗 ";
        color: #3498db;
      }

      /* Estilização da primeira letra do parágrafo ao passar o mouse */

      p:hover::first-letter {
        font-size: 2em;
        color: #e74c3c;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Exemplo de combinação de pseudoclasses e pseudo-elementos</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div>
            <p>Este é o primeiro parágrafo dentro do div.</p>
            <p>Este é o segundo parágrafo dentro do div.</p>
          </div>
          <ul>
            <li>Item da lista 1</li>
            <li>Item da lista 2</li>
            <li>Item da lista 3</li>
            <li>Item da lista 4</li>
          </ul>
          <a href="#">Link com ícone no foco</a>
          <p>Passe o mouse sobre este parágrafo para ver o efeito na primeira letra.</p>
        </body>
      </html>
    
  
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION