• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Front-end
    3. CSS: seletores avançados que facilitam o desenvolvimento de aplicações web

    CSS: seletores avançados que facilitam o desenvolvimento de aplicações web

    9 min9 minutos de leitura

    9 min9 minutos de leitura

    Publicado: 11/07/2023

    1. Liberando todo o poder do CSS com seletores inteligentes
    2. O que é um Seletor de classe e como é usado em CSS?
    3. Seletores
    4. Combinadores
    5. Pseudo-classes
    6. Seletores CSS na vida real: aplicando todo o conhecimento adquirido
    7. Conclusão

    Liberando todo o poder do CSS com seletores inteligentes

    E aí, jovem Jedi do CSS! Já pegou a pipoca? Porque hoje a jornada promete ser emocionante.

    Vamos começar do básico, atravessando a galáxia dos seletores e, se tivermos sorte, ainda descobriremos umas estrelas desconhecidas pelo caminho.

    Para iniciar nossa exploração, vamos voltar às bases e relembrar os fundamentos, afinal, recordar é viver. No universo do CSS, conhecimento é poder! Ter uma compreensão sólida dos seletores é como ter a força ao seu lado.

    E, como diria Mestre Yoda: “sempre em movimento está o futuro”. Portanto, não se acomode no que já sabe, explore novas possibilidades.

    https://media.tenor.com/9fAj8-HDLqMAAAAC/star-wars-light.gif

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    O que é um Seletor de classe e como é usado em CSS?

    Um seletor de classe é uma maneira de selecionar elementos em uma página da web com base em sua classe HTML associada.

    As classes em HTML são atributos que podem ser atribuídos a elementos para categorizá-los ou estilizá-los de maneira específica. Os seletores CSS, ou CSS seletor, são precedidos por um ponto (.).

    Seletores

    Os seletores são as coordenadas de localização do nosso CSS e, por isso, conhecê-los bem é tão importante.

    Eles especificam os elementos aos quais as regras de estilo CSS devem ser aplicadas. Ao otimizar a forma como selecionamos os elementos, podemos melhorar a performance do nosso site.

    Confira a seguir, alguns tipos de seletores CSS mais utilizados:

    Seletores Básicos

    Os seletores básicos são o nosso ponto de partida. São eles que permitem que a nossa estilização se conecte aos elementos HTML.

    Seletor de Tag

    O seletor de tag é o mais simples de todos. Ele seleciona todos os elementos de uma determinada tag. Por exemplo, p { color: blue; } irá colorir de azul todos os parágrafos da sua página.

    <p>Esse parágrafo será azul.</p>
    

    Seletor de Classe

    O seletor de classe seleciona elementos com base na classe CSS que possuem. Com ele, podemos estilizar qualquer número de elementos de maneira consistente.

    Veja que .exemplo { font-size: 20px; } irá afetar todos os elementos com a classe exemplo.

    <p class="exemplo">Este parágrafo terá tamanho de fonte 20px.</p>
    

    Seletor de ID

    O seletor de ID é como um foco preciso em um único elemento que possui um ID específico.

    O exemplo #unico { background-color: yellow; } irá mudar o plano de fundo do elemento com o ID unico para amarelo.

    <div id="unico">O fundo deste div será amarelo.</div>
    

    Seletor Universal CSS

    O seletor universal * pode afetar todos os elementos da sua página. Use-o com sabedoria.

    * {
      margin: 0;
      padding: 0;
    }
    
    <p>Todos os elementos, incluindo este parágrafo, terão margem e padding 0.</p>
    

    Seletor de Atributo

    Seletor de Atributo CSS

    O seletor de atributo seleciona elementos baseados nos atributos que eles possuem. Por exemplo,a[target="_blank"] { color: red; } irá colorir de vermelho todos os links que abrem em uma nova aba.

    <a href="https://www.exemplo.com" target="_blank">Este link será vermelho.</a>
    

    Combinadores

    OOs combinadores são a forma de combinar diferentes seletores de maneira eficaz, ampliando o nosso poder de estilização.

    Eles especificam a relação entre os seletores, indicando quais elementos devem ser estilizados com base em sua relação no código HTML. Alguns dos combinadores mais comuns são:

    Combinador Irmão Adjacente

    O combinador irmão adjacente + seleciona o elemento que vem imediatamente depois do primeiro elemento.

    h2 + p {
      color: green;
    }
    
    <h2>Título</h2>
    <p>Este parágrafo será verde.</p>
    <p>Este parágrafo não será afetado.</p>
    

    Combinador Irmão Geral

    O combinador irmão geral ~ é mais abrangente, selecionando todos os elementos que seguem o primeiro.

    h2 ~ p {
      color: green;
    }
    
    <h2>Título</h2>
    <p>Este parágrafo será verde.</p>
    <p>Este parágrafo também será verde.</p>
    

    Combinador de Filho

    O combinador de filho > seleciona apenas os elementos que são filhos diretos do primeiro elemento.

    div > p {
      color: blue;
    }
    
    <div>
      <p>Este parágrafo será azul.</p>
      <span><p>Este parágrafo não será azul, pois não é um filho direto do div.</p></span>
    </div>
    

    Combinador de Descendente

    O combinador de descendente (espaço) é o mais generoso, selecionando todos os elementos que são descendentes do primeiro, sejam filhos diretos ou não.

    div p {
      color: blue;
    }
    
    <div>
      <p>Este parágrafo será azul.</p>
      <span><p>Este parágrafo também será azul, mesmo não sendo um filho direto do div.</p></span>
    </div>
    

    Pseudo-classes

    Pseudo-classes são poderosas aliadas para refinar nossas seleções de forma eficiente. Elas permitem selecionar elementos com base em seu estado, posição ou características específicas. Vamos explorar as mais usadas a seguir.

    :nth-child() e :nth-of-type()

    As pseudo-classes :nth-child() e :nth-of-type() selecionam elementos baseados em sua posição entre os irmãos.

    li:nth-child(2) {
      color: red;
    }
    
    <ul>
      <li>Este item não será afetado.</li>
      <li>Este item será vermelho.</li>
      <li>Este item não será afetado.</li>
    </ul>
    

    :not()

    A pseudo-classe :not() é uma forma de negação. Ela seleciona todos os elementos que não correspondem ao seletor dentro dos parênteses.

    div:not(.classe) {
      color: blue;
    }
    
    <div class="classe">Este div não será azul.</div>
    <div>Este div será azul.</div>
    

    :hover

    A pseudo-classe :hover aplica estilos a um elemento quando o cursor do mouse está sobre ele.

    button:hover {
      background-color: yellow;
    }
    
    <button>Quando você passar o mouse por cima, este botão será amarelo.</button>
    

    :after e :before

    As pseudo-classes :after e :before permitem a adição de conteúdo antes ou depois do conteúdo de um elemento.

    p:before {
      content: "Coramila: ";
    }
    
    <p>Este parágrafo terá "Coramila: " antes de seu texto. Coramila é um pseudônimo para Camila.</p> 
    

    :has

    A pseudo-classe :has seleciona um elemento se ele contém um determinado elemento dentro dele.

    div:has(p) {
      border: 1px solid black;
    }
    
    <div><p>Este div terá uma borda, pois contém um parágrafo.</p></div>
    <div>Este div não terá uma borda, pois não contém um parágrafo.</div>
    

    :empty

    A pseudo-classe :empty seleciona todos os elementos que não têm filhos.

    div:empty {
      display: none;
    }
    
    <div>Este div será exibido.</div>
    <div></div> <!-- Este div não será exibido, pois está vazio. -->
    

    :last-child e :first-child

    As pseudo-classes :last-child e :first-child selecionam o primeiro ou o último filho de um elemento.

    li:first-child {
      color: red;
    }
    
    <ul>
      <li>Este item será vermelho.</li>
      <li>Este item não será afetado.</li>
    </ul>
    

    :is() e :where()

    Por fim, as pseudo-classes :is() e :where() aceitam uma lista de seletores e retornam o primeiro que corresponder.

    p:is(.grifinoria, .luffaluffa) {
      color: blue;
    }
    
    <p class="grifinoria">Este parágrafo será azul.</p>
    <p class="luffaluffa">Este parágrafo também será azul.</p>
    <p class="sonserina">Este parágrafo não será afetado.</p>
    

    Seletores CSS na vida real: aplicando todo o conhecimento adquirido

    É hora de vermos alguns exemplos de como esses seletores que estudamos podem se juntar e criar efeitos incríveis.

    Vocês vão ver que esses conceitos não são tão complexos quando estão aplicados em situações do dia a dia. Confiram a seguir.

    Personalizando checkbox

    A personalização de checkbox é um clássico.

    Combinando pseudo-classes e pseudo-elementos, além do uso do combinador de irmão adjacente, podemos fazer coisas incríveis. Olha só:

    input[type="checkbox"]:checked + label:after {
        left: 42px;
    }
    

    Nesse exemplo, estamos dizendo: “Ei, CSS, quero que você selecione o pseudo-elemento after de um label que é irmão adjacente de um input do tipo checkbox, mas só quando ele estiver marcado (:checked)”.

    E o que fazemos com esse after selecionado? Alteramos sua propriedade left para 42px. O resultado é um belo efeito de deslizamento no nosso checkbox.

    Efeito Hover em Links Específicos

    Outra combinação super útil envolve o seletor de descendente e a pseudo-classe :hover. Podemos usá-los para criar efeitos interessantes ao passar o mouse sobre um elemento, como um link dentro de um parágrafo específico. Vamos ver:

    p.intro a:hover {
        color: red;
    }
    

    Aqui, a mágica acontece da seguinte maneira: “Oi, CSS, quando eu passar o mouse sobre um link (a:hover), que é descendente direto de um parágrafo com a classe intro, quero que você mude a cor dele para vermelho”. Pronto, o efeito hover então é personalizado.

    Destacando o Único Item de uma Lista

    ul li:only-child {
        color: green;
    }
    

    Nesse caso, estamos falando o seguinte: “CSS, por favor, altere a cor para verde, mas só se o li for o único filho (:only-child) dentro da ul”. Esse é um recurso bem legal para criar um destaque em listas que contêm um único item.

    E aí, gostou dos exemplos? Esses são apenas alguns dos muitos cenários que podemos enfrentar no nosso dia a dia de desenvolvedor ou desenvolvedora.

    O importante é que agora você tem uma base sólida sobre seletores CSS e pode explorar ainda mais esse vasto universo.

    Leia também: Como se tornar um(a) desenvolvedor(a) full-stack no próximo ano?

    Conclusão

    Se você me acompanhou até aqui nessa aventura intergaláctica, parabéns!

    Você agora detém o conhecimento de um verdadeiro Jedi quando se trata de seletores CSS. Desde as bases com seletores simples, passando pelos combinadores e chegando nas órbitas das pseudo-classes.

    Navegamos em conjunto por cada canto desse universo. Mas não se esqueça que o conhecimento é como o espaço: infinito e sempre em expansão. Esses seletores que exploramos são apenas o começo.

    Assim como os astrônomos, que continuam explorando galáxias distantes, você também deve continuar expandindo seu conhecimento em CSS.

    Está preparado (a) para ir além, jovem Padawan?

    A documentação da Mozilla é como o telescópio Hubble para nós, devs. Com ela, você pode aprofundar ainda mais seus conhecimentos sobre os seletores CSS e muito mais.

    Com o tempo e a prática, você verá que o universo dos seletores CSS se tornará menos misterioso e mais familiar.

    Finalmente, como sempre, lembre-se das sábias palavras do Mestre Yoda: “Faça ou não faça. A tentativa não existe.” Portanto, continue praticando, explorando e aprimorando suas habilidades. Que a Força do CSS esteja com você.

    https://media.tenor.com/Zs0LA6-ilX0AAAAC/han-solo.gif

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de Vinicios Neves

      Autor(a)

      Vinicios Neves

      Vinicios Neves, Tech Lead e Educador, mistura código e didática há mais de uma década. Especialista em TypeScript, lidera equipes full-stack em Portugal e inspira futuros desenvolvedores na FIAP e Alura. Com um pé no código e outro no ensino, ele prova que a verdadeira engenharia de software vai além das linhas de código. Além de, claro, ser senior em falar que depende.

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 31/03/2021

      This, Getters e Setters nas classes Javascript

      Ler mais
    • Alura
      25/05/2014

      Reaproveitando código com JavaScript: herança e protótipos

      Ler mais
    • Alura
      30/07/2019

      Criando e publicando uma biblioteca Javascript no NPM

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura