Como modificar um elemento com CSS se NÃO tivermos uma classe ou identificador com pseudo-classes

Muitas vezes você deseja modificar um elemento do seu site com CSS, mas ao fazê-lo percebe que o elemento não possui nenhuma classe ou identificador.

Não se preocupe, nem tudo está perdido.

Graças às PseudoClasses podemos fazer muito mais do que você imagina e neste tutorial vamos ver como fazer.

Tudo o que veremos neste tutorial ele funciona para qualquer página que você fizer com HTML e CSS.

E especificamente, é claro que é válido para o WordPress, de fato, em nossos exemplos, faremos isso no WordPress.

📺️ Tutorial em vídeo:

Inscreva-se no meu canal:  

:first-of-type Modificar apenas o primeiro elemento

Esta pseudo-classe nos permite modificar apenas o primeiro elemento de seu tipo entre um grupo de elementos irmãos.

Agora vamos ver exemplos concretos, mas aqui você tem uma ajuda muito bom sobre essa pseudoclasse.

A primeira coisa que vamos modificar é o primeiro elemento de um menu:

Capturando um cabeçalho, apontando para o primeiro elemento

Normalmente o que eu faço quando quero modificar algo é entrar no inspetor de elementos do meu navegador (botão direito –> Inspecionar) e verificar se o elemento a ser modificado possui uma classe ou um identificador:

captura de tela do inspetor de elementos, apontando para o identificador do primeiro elemento

O elemento que eu quero modificar tem um identificador específico então eu realmente não preciso usar pseudo classes.

Mas imagine que você já viu e que eu não sei se tem identificador 🙈

Vou modificar esse elemento como se esse identificador não existisse.

Para fazer uso das pseudo-classes, tenho que adicionar a pseudo-classe precedida por dois pontos:

#top-menu li:first-of-type {
    margin-right: 140px;
}
captura css para modificar com first-of-type a margem do primeiro elemento

E o resultado é:

captura de tela do cabeçalho apontando para a margem direita do primeiro elemento

Como podemos ver na captura de tela acima, há apenas a margem direita aplicada ao primeiro elemento.

:last-of-type Modificar apenas o último elemento

Da mesma forma que no exemplo anterior, podemos modificar apenas o último elemento.

Desta vez, usaremos :last-of-type da seguinte maneira:

#top-menu li:last-of-type {
    margin-right: 140px;
}
captura css para modificar com first-of-type a margem do último elemento

E o resultado seria:

captura de tela do cabeçalho apontando para a margem direita do último elemento

:nth-of-type Modifique o elemento ou elementos que queremos

Essa pseudo-classe é muito poderosa porque podemos referenciar qualquer elemento específico que queremos ou criar padrões para que vários elementos sejam selecionados.

Vamos imaginar que eu precise modificar o segundo elemento do meu menu, para isso usaríamos nth-of-type da seguinte forma:

#top-menu li:nth-of-type(2) {
    margin-right: 140px;
}
captura css para modificar com nth-of-type a margem do segundo elemento

captura de tela do cabeçalho apontando para a margem direita do segundo elemento

Crie padrões com :nth-of-type em elementos pares

Se em vez de nos referirmos a um elemento específico queremos nos referir a um elemento a cada n elementos, faríamos assim:

#top-menu li:nth-of-type(2n) {
    margin-right: 140px;
}
padrão em elementos pares

E o resultado seria aplicar margem ao segundo e quarto elementos:

captura de tela do cabeçalho apontando para a margem direita do segundo e quarto elementos

Crie padrões com :nth-of-type em Odd Elements

Da mesma forma, podemos nos referir aos elementos ímpares da seguinte maneira:

#top-menu li:nth-of-type(2n+1) {
    margin-right: 140px;
}
padrão em elementos estranhos

E o resultado seria:

captura de tela do cabeçalho apontando para a margem direita do primeiro e terceiro elementos

Adicionar alterações de CSS ao WordPress

Estamos fazendo alterações de CSS no inspetor de elementos. E isso é ótimo para testá-lo, mas assim que atualizarmos a página, as alterações desaparecerão, pois essas alterações não são salvas na web, mas em nosso próprio navegador.

Para adicionar as alterações ao WordPress existem várias maneiras, desde modificar o arquivo CSS do nosso modelo até usar a própria interface do WordPress.

Vamos usar a própria interface do WordPress, para isso vamos ao menu Personalizar -> Adicionar CSS adicional:

Captura de tela do menu de personalização do WordPress

Clicamos e chegamos à tela onde temos que adicionar o CSS:

Captura de tela do menu do WordPress para adicionar CSS adicional

Faixa de bônus: adicione uma pseudoclasse a um elemento filho

Como vimos, essas Pseudo-Classes nos permitem modificar facilmente elementos irmãos, ou seja, elementos que estão no mesmo nível.

Mas vamos imaginar que queremos mudar a cor dos elementos ímpares do nosso cardápio.

A cor não é definida no elemento de lista (li) mas no elemento de ligação (a) que está dentro do elemento de lista:

Se olharmos para o inspetor de elementos:

inspetor de elementos de captura com menu principal da web

Se olharmos de perto, veremos que não poderíamos criar o padrão da seguinte maneira:

#top-menu li a:nth-of-type(2n+1) {
    color: red;
}

Como cada link está em um li diferente, todos eles seriam o primeiro elemento e todos mudariam de cor:

captura de tela do menu com cor vermelha todos os itens do menu

O que teríamos que fazer é aplicar o padrão com a pseudoclasse ao elemento li da seguinte forma:

#top-menu li:nth-of-type(2n+1) a {
    color: red;
}
Captura de tela da regra pseudoclassificada do Element inspector

Resultando no que realmente queríamos:

captura de tela do menu com cor vermelha para itens ímpares

Como vimos, não é o fim do mundo se não tivermos um identificador ou uma classe.

Graças às pseudoclasses podemos acessar quase qualquer elemento do nosso HTML.

Espero que tenham gostado 😉

Deixe um comentário