Tableless - Desenvolvimento inteligente com Padrões Web

09/03/2009
CSS

Seletores Agrupados e Encadeados

Sobre seletores agrupados e seletores encadeados. Explicação rápida e básica.

Por


O CSS é responsável por formatar e manipular toda informação exibida pelo HTML, de forma que o layout fique fiel ao que o designer desenhou. Essa é a explicação básica e resumida sobre a função do CSS.

A idéia principal é não misturar o código de Formatação com a Informação do site. Elas devem ser independentes, para que as modificações em cada uma não influeciem o funcionamento da outra. Para isso, você precisa conseguir selecionar qualquer elemento do HTML pelo CSS.

Aviso: Este primeiro post terá como objetivo contextualizar o assunto. Faremos uma série de artigos sobre seletores, e é importante entendermos como eles funcionam.

O “seletor” é o responsável por essa função de selecionar o elemento, a estrutura da sintaxe é exatamente essa:

seletor {
   propriedade: valor;
}

Propriedade e valor são as características que você gostaria de modificar no elemento.
Seletor é o elemento que você irá selecionar no código HTML.

Nesta série de artigos, iremos mostrar como os seletores funcionam e seus tipos. Começaremos desde o básico até o manipulação de filhos e seletores complexos.

Aviso aos navegantes: Farei essa série nivelando as possibilidades por cima. Ou seja, ignorarei solenemente browsers antigos ou que não suportam algumas possibilidades.

Seletores Agrupados

Quando você deseja fazer com que vários elementos tenham as mesmas características, você irá agrupá-los em um mesmo seletor. A separação dos elementos é feita por vírgulas. Veja um exemplo:

strong, em, span {
 color: red;
}

Os elementos STRONG, EM e SPAN terão a mesma cor.

Seletores Encadeados

O CSS trabalha com especificidade. Suponhamos que você queira que o EM tenha cor de letra vermelha, você irá fazer assim:

em {
 color: red;
}

Mas você tem uma série de EMs na página, e talvez você queira que apenas o EM que está dentro de STRONG fique com a cor vermelha. Você terá que especificar isso no seu seletor:

strong em {
 color: red;
}

No seletor acima estou dizendo que o EM que está dentro do STRONG terá cor vermelha. Lê-se da direita para esquerda, por que é a ordem do HTML. O código HTML seria mais ou menos assim:



A idéia do Tableless é sem dúvida melhorar o nosso mercado.

Um seletor encadeado um pouco mais longo:

.content .post-text p strong em {
 color: red;
}

O HTML deste seletor seria este:

A idéia do Tableless é sem dúvida melhorar o nosso mercado.

Juntando os seletores agrupados e o seletores encadeados, ficaria mais ou menos assim:

.content .post-text p strong em, .content .post-text p strong a {
 color: red;
}

Note que a vírgula separa os elementos. Logo após da vírgula é iniciado um novo seletor para modificar um outro elemento no HTML.

Se você quer acompanhar essa pequena campanha, veja no Twitter o que nós podemos fazer sem o IE6. Siga o hash #semie6.

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://twitter.com/diegoeis/

Veja os outros posts de

  • http://juarezpaf.com Juarez P. A. Filho

    Opa Diego, muito bacana a iniciativa do Tableless, primeiro ao criar uma campanha sem IE6, espero sinceramente que a gente consiga convencer o maior números de pessoas possíveis, inclusive meus clientes e chefe :)
    E com certeza essa série vai ser ótima, estou no aguardo dos próximos episódios. :)

  • Fabio Badaró

    Boa Diego….mandou bem nas dicas de css para a galera…vou acompanhar esta série de posts…

  • http://www.justj.com.br Jaqueline Benedicto

    O artigo é ótimo! Simples e super objetivo sem bla bla bla!!

  • Frank Gilber

    Blz Diego ótimas dicas sobre seletores agrupados e seletores encadeado,é isso como sempre a tablelless fazendo a diferença para a galera.
    Ficarei esperando os próximos posts ;)

  • http://www.yoomp.com Rodrigo Fante

    Interessante… muito bom divulgar isso pro povo que ta iniciando…

    Sobre a campanha do IE6, pq nao monta uma pagina no blog com o Juitter seguindo a hash #semie6.

    []‘s

  • http://designcombolachas.blogspot.com/ Thiago Cavalcanti

    Importante essa explicação, eu só queria deixar a dica pra quem está começando agora:
    Se você acha difícil visualizar como esses agrupamentos e encadeamentos de seletores(além do mecanismo de herança das propriedades) funcionam e se relacionam(problema que piora exponencialmente à medida que o CSS aumenta) instale a extensão Firebug no Firefox! Satisfação garantida!

  • Kaleb Martins

    Bacana.. Ficou legal.

    Estou ancioso para ver as proximas matérias.

  • http://webcomfarinha.com Matheus

    Muito BOm o post! Saber usar o CSS e suas características da melhor maneira possível é o melhor caminho !!!

  • Seyfertt

    Ótimo post Diego, utilizo essas sentenças praticamente todos os dias, com elas torna o meu trabalho muito mais flexível.

    Sei que sem esses métodos seria necessário criar códigos ainda maiores o que não seria tão legal. A idéia é simplificar se sempre simplificar e não perder a estética.

    Grande Abraço!

  • Fabrício Sahdo

    Diego eu já desenvolvo tableless há +- 2 anos.. e sempre pesquiso sites e blogs a procura de algo mais aprofundado sobre essa linguagem, vejo nos editores variasss váriaveis que pode ser usadas mas muitas não faco nem noção para que servem, você como um bom profissional e pesquisador tem algo a nos oferecer de conhecimentos mais aprofundados?

    parabens pelo site, abracos

  • http://www.kadunew.com/blog Carlos Eduardo – Kadu

    Entender os seletores e a especificidade deles é muito importante, principalmente pra quem está começando.
    Conheço desenvolvedores experientes que não sabem tirar proveito dos seletores…
    Parabéns Diego!
    GRANDE abraço!

  • Diego Felix

    [... Conheço desenvolvedores experientes que não sabem tirar proveito dos seletores… ][2]

    Ótima matéria Diego.

  • Pingback: Pseudo-classes do CSS | Tableless.com.br

  • http://www.dsc.com.br Davi de Féo

    Simples e objetivo, como tableless deve ser.

    Impressionante como procuramos por ai e só achamos aqui.

    Parabéns.

  • http://www.virabrequim.com.br nilson nardi

    Ótimo artigo.
    Como iniciante posso afirmar que estão postadas de forma clara e objetiva.
    Também vou participar da campanha “FORA IE’s”

    Abraços

  • http://www.virabrequim.com.br nilson nardi

    Ótimo artigo II.
    Como iniciante posso afirmar que as informações estão postadas de forma clara e objetiva.
    Também vou participar da campanha “FORA IE’s”
    Abraços

  • Pingback: Clica Aqui » nth-child

  • Ricardo

    Olá Diego, sua explicação foi algo sensacional, didática excelente, exemplos perfeitos. Minha única queixa é a falta de novos assuntos no site, no mais Parabéns !!!

  • Pingback: Propriedade do CSS: nth-child | Boas práticas de Desenvolvimento com Padrões Web

  • Pingback: 6 estratégias para melhorar a organização do seu CSS | Boas práticas de Desenvolvimento com Padrões Web

  • http://ricardomiranda.posterous.com/ Ricardo Miranda

    Diego,
    Parabéns por mais um excelente post, sempre estou acompanhando as
    matérias que vocês lançam e a única crítica que eu posso fazer
    é sobre a periodicidade das atualizações (novos assuntos), no mais
    nota 10, parabéns !!!

  • Pingback: 6 estratégias para melhorar a organização do seu CSS

  • Pingback: 6 estratégias para melhorar a organização do seu CSS | Codeworks - Artigos