Como selecionar tr par.

1 view
Skip to first unread message

Dimitri Vargas Figueiredo Guimaraes

unread,
Oct 29, 2009, 10:59:52 PM10/29/09
to ar...@googlegroups.com
Ola pessoal .
Estou quebrando a cabeca, procurando na documentação  w3c , google etc.
 
Sempre que posso alterando meu frameworkinho.
 
Queria colocar uma  tr branca e outra preta em minha tabela.
 
Querendo que minha tabela fique como uma zebrinha.
 
Com jquery eu faço isto em 1 seg.Mas queria direto na folha de estilos.
 
Alguem tem noçao de como selecionar as tr par par atraves dos estilos??
 
Se soubesse como pegar a ordem do elemento ja me ajudaria.
 
Espero respostas, valew pessoal.

diego nunes

unread,
Oct 30, 2009, 8:17:20 AM10/30/09
to ar...@googlegroups.com
2009/10/30 Dimitri Vargas Figueiredo Guimaraes <dimi...@gmail.com>:

> Queria colocar uma  tr branca e outra preta em minha tabela.
>
> Querendo que minha tabela fique como uma zebrinha.

Com CSS3 é possível, mas infelizmente ainda é pouco suportado.
Procure pelos pseudo-elementos :odd e :even, por exemplo. Ainda há o
"n*2", mas no seu caso é queimar cartucho à toa.

--
diego nunes
dnunes.com

Guilherme Moreira

unread,
Oct 30, 2009, 7:25:03 AM10/30/09
to ar...@googlegroups.com
Dimitri, se não me engano, não é possível fazer isso somente com CSS. o
jeito é usar um javascript para que ele faça isso pra você

--
Guilherme Moreira
Designer e desenvolvedor web
+55 11 8842-3204
www.guilhermemoreira.com.br
con...@guilhermemoreira.com.br

Jonas Raoni

unread,
Nov 3, 2009, 8:54:44 PM11/3/09
to ar...@googlegroups.com
2009/10/30 Guilherme Moreira <guilhermemo...@gmail.com>:

> Dimitri, se não me engano, não é possível fazer isso somente com CSS. o
> jeito é usar um javascript para que ele faça isso pra você

Se você não se importa se vai funciona na maioria dos lugares, use CSS
3 e espere que os demais browsers evoluam. Se for importante então
faça o output certinho pelo servidor. Fazendo só com JavaScript me
passa a impressão de que não é importante além de repassar
processamento desnecessário ao cliente (se for uma listagem grande não
é nada rápido, pelo menos no meu micro antigo kkkkkkk).


--
Jonas Raoni Soares Silva
http://jsfromhell.com

Joel Souza

unread,
Nov 3, 2009, 9:14:17 PM11/3/09
to ar...@googlegroups.com
Dimitri, se não me engano, não é possível fazer isso somente com CSS. o
jeito é usar um javascript para que ele faça isso pra você

e.g: se você já está usando jquery no projeto, dê um $("table tr:not(:odd)")  e boas.



--
Guilherme Moreira
Designer e desenvolvedor web
+55 11 8842-3204
www.guilhermemoreira.com.br
con...@guilhermemoreira.com.br






--
Joel Souza

diego nunes

unread,
Nov 4, 2009, 9:07:36 AM11/4/09
to ar...@googlegroups.com
2009/11/4 Joel Souza <joel....@gmail.com>:

>> Dimitri, se não me engano, não é possível fazer isso somente com CSS. o
>> jeito é usar um javascript para que ele faça isso pra você
>
> e.g: se você já está usando jquery no projeto, dê um $("table
> tr:not(:odd)")  e boas.

":not(:odd)" não seria o equivalente (só que gastando mais
processamento) do ":even"? Isso é exatamente o CSS3 que eu sugeri na
primeira resposta.

tr { background: red; }
tr:even { background: blue; }

Como o Jonas falou: se não for essencial, deixe isso lá e um dia
as pessoas irão trocar de navegador (instalarão o Opera!) e verão as
coisas como devem ser. Se for essencial, coloque um 'class="even"'
vindo do servidor e use um "tr.even { }". Fazer esse tipo de coisa por
JavaScript numa lista que não será alterada ao longo do tempo não faz
sentido.

Amplexos.

--
diego nunes
dnunes.com

Joel Souza

unread,
Nov 4, 2009, 9:50:40 AM11/4/09
to ar...@googlegroups.com
>    ":not(:odd)" não seria o equivalente (só que gastando mais
> processamento) do ":even"?

Isso. Eu estava digitando só :odd, mas depois li no título da thread
que ele quer as tr's PARES a solução mais simples que achei na hora de
digitar foi negar o odd :). :even faz a mesma coisa.


> Isso é exatamente o CSS3 que eu sugeri na
> primeira resposta.
>
> tr { background: red; }
> tr:even { background: blue; }

tr:even funciona no css3? Não testei aqui mas lembro que já usei
tr:nth-child(even) ou tr:nth-child(2n)

>
>    Como o Jonas falou: se não for essencial, deixe isso lá e um dia
> as pessoas irão trocar de navegador (instalarão o Opera!) e verão as
> coisas como devem ser. Se for essencial, coloque um 'class="even"'
> vindo do servidor e use um "tr.even { }". Fazer esse tipo de coisa por
> JavaScript numa lista que não será alterada ao longo do tempo não faz
> sentido.
>
>    Amplexos.
>
> --
> diego nunes
> dnunes.com
>
> >



--
Joel Souza
Reply all
Reply to author
Forward
0 new messages