Busca

Boas práticas de Desenvolvimento com Padrões Web


Seletores Agrupados e Encadeados

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

09/03/2009 por Diego Eis
19 Comentários

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:

1
2
3
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:

1
2
3
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:

1
2
3
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:

1
2
3
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:

1
2
3
<p>
A idéia do Tableless é sem dúvida <strong>melhorar o <em>nosso mercado</em></strong>. 
</p>

Um seletor encadeado um pouco mais longo:

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

O HTML deste seletor seria este:

1
2
3
4
5
6
7
<div class="content">
	<div class="post-text">
		<p>
			A idéia do Tableless é sem dúvida <strong>melhorar o <em>nosso mercado</em></strong>. 
		</p>
	</div>
</div>

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

1
2
3
.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.

19 Comentários

Sua opinião:

Vamos elevar o nível de discussão. Exponha sua opinião, sua crítica.



RSS dos comentários deste post
URL para Trackback

19 Comentários

Juarez P. A. Filho 09/03/2009 às 00:28

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ó 09/03/2009 às 01:46

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

Jaqueline Benedicto 09/03/2009 às 10:16

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

Frank Gilber 09/03/2009 às 10:52

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 ;)

Rodrigo Fante 09/03/2009 às 13:36

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

Thiago Cavalcanti 09/03/2009 às 14:32

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 09/03/2009 às 21:47

Bacana.. Ficou legal.

Estou ancioso para ver as proximas matérias.

Matheus 10/03/2009 às 12:35

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

Seyfertt 10/03/2009 às 14:28

Ó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 10/03/2009 às 15:07

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

Carlos Eduardo - Kadu 10/03/2009 às 17:30

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 17/03/2009 às 10:36

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

Ótima matéria Diego.

Pseudo-classes do CSS | Tableless.com.br 23/03/2009 às 10:07

[...] possibilidades. É por isso toda essa campanha contra o Internet Explorer 6. Esse artigo e outros artigos fazem parte dessa campanha. É uma forma de mostrar o quanto perdemos de produtividade em nosso dia [...]

Davi de Féo 16/05/2009 às 10:47

Simples e objetivo, como tableless deve ser.

Impressionante como procuramos por ai e só achamos aqui.

Parabéns.

nilson nardi 17/07/2009 às 08:41

Ó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

nilson nardi 17/07/2009 às 08:43

Ó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

Clica Aqui » nth-child 02/09/2009 às 23:00

[...] Seletores encadeados e agrupados [...]

Ricardo 03/03/2010 às 10:46

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 !!!