Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Colorear Filas de una tabla. par-impar

Estas en el tema de Colorear Filas de una tabla. par-impar en el foro de CSS en Foros del Web. Hola buen dia para todos.. tengo un pequeñito problemita. Tengo una tabla obtenida de una consulta mysql y para adornarla un poco la e pintado ...
  #1 (permalink)  
Antiguo 27/04/2013, 14:26
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 5 meses
Puntos: 0
Colorear Filas de una tabla. par-impar

Hola buen dia para todos..

tengo un pequeñito problemita.

Tengo una tabla obtenida de una consulta mysql y para adornarla un poco la e pintado con jquery y CSS : asi.

$(document).ready(function(){
$("tr:odd").css("background-color", "while"); // filas pares
$("tr:even").css("background-color", "#F2F2F2"); // filas impares
});

como resultado me da una tabla muy presentable y muy bonita ya que la filas pares estan de color blanco y las impares de color gris.

para seguir adornando mi tabla e querido que al pasar el mouse por cualquier fila ya sea par o impar , esta se ponga de color:celeste.

para ello e usado CSS asi.

tr:hover{
background-color:aqua;
cursor :pointer;
}

aqui el problema.

pasa que cuando paso el mouse por ensiama solo se me colorean las filas pares de celeste. y las impares no toman ningun efecto siguen siendo de color gris. no se a que se deve esto pienso que con el tr:hover{background:xxxx;

esta deveria tomar el efecto en cualquier fila ya sea par o impar

alguien me podria dar alguna solucion ?.
  #2 (permalink)  
Antiguo 27/04/2013, 18:08
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Colorear Filas de una tabla. par-impar

Tu problema es un resultado raro de que escribiste mal "white". Pusiste "while".

Si hubieses puesto "white", no se colorearía ninguna fila al pasar el mouse (ni pares ni impares). Dado que "while" no es un color CSS válido, no lo aplica. Pero el otro si.

Entonces, usando jQuery (que para estos propósitos está muy mal) los estilos se aplican inline. Es decir:

Código HTML:
Ver original
  1. <tr style="background-color: white;"></tr>

Los estilos inline tienen mayor peso que los embebidos o los importados de una hoja de estilo. Entonces, el estilo inline "gana" frente al :hover que incorporaste en otro lado.

¿La solución? No uses jQuery. Está mal (para este propósito).

Código HTML:
Ver original
  1.   tr{
  2.     /* Todas las filas blancas */
  3.     background-color: white;
  4.   }
  5.   tr:nth-child(2n+1){
  6.     /* Filas impares grises */
  7.     background-color: grey;
  8.   }
  9.   tr:hover{
  10.     /* Filas celeste al pasar el mouse */
  11.     background-color: aqua;
  12.   }
  13.  
  14. <table width="100%">
  15.   <thead>
  16.     <tr>
  17.       <th></th>
  18.       <th></th>
  19.       <th></th>
  20.       <th></th>
  21.     </tr>
  22.   </thead>
  23.   <tbody>
  24.     <tr>
  25.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  26.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  27.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  28.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  29.     </tr>
  30.     <tr>
  31.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  32.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  33.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  34.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  35.     </tr>
  36.     <tr>
  37.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  38.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  39.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  40.       <td>lorem lorem lorem lorem lorem lorem lorem </td>
  41.     </tr>
  42.   </tbody>

En este ejemplo la primer regla (por ser una regla de tipo elemento) es la menos fuerte. Las otras dos reglas que siguen son más fuertes, pues son elemento:pseudo-clase y además vienen después. Por lo tanto, siempre gana la que está más abajo (en este caso, la hover).
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 27/04/2013, 22:02
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Colorear Filas de una tabla. par-impar

Siempre se puede recurrir a aplicar !important
Código CSS:
Ver original
  1. tr:hover{background:red!important;}
Aunque lo ideal es agregar una clase en lugar de los estilos en linea
  #4 (permalink)  
Antiguo 28/04/2013, 01:57
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Colorear Filas de una tabla. par-impar

Como bien dice Naahuel, estás usando JavaScript para algo que no deberías.

A modo de completar, también puedes hacer uso de par/impar como haces con jQuery pero usando CSS:

Código CSS:
Ver original
  1. tr:nth-child(odd)
  2.   background-color: white;
  3. }
  4. tr:nth-child(even) {
  5.   background-color: grey;
  6. }
  #5 (permalink)  
Antiguo 28/04/2013, 10:25
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Colorear Filas de una tabla. par-impar


Muchisimas gracias esto me ah servido 100% eso es lo que yo estaba buscando y lo del color while en vez de white jeje esque lo escribi mal aqui en el foro :)

Tu ayuda y Tambien la de: ArturoGallegos de usar: tr:hover{background-color:aqua!important} me funcionan 100% de nuevo muchas gracias
  #6 (permalink)  
Antiguo 28/04/2013, 10:29
Avatar de cristo995  
Fecha de Ingreso: noviembre-2012
Mensajes: 187
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Colorear Filas de una tabla. par-impar

:arriba

muchas gracias la palabra !important me va de 100%

al igual que la respuesta de Naahuel
  #7 (permalink)  
Antiguo 28/04/2013, 17:26
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 187
Respuesta: Colorear Filas de una tabla. par-impar

Algunas consideraciones para completar el tema. Lo siguiente no modifica todos los consejos que te dieron sino que los complementa.

El selector :nth-child no es soportado en en Internet Explorer 8 e inferior.

Es por la razón anterior por la cual no estoy utilizando las reglas :nth-child en proyectos que requieran soporte para IE en esas versiones.

En esos casos incorporo una clase a cada una de las filas, y luego utilizo esa clase para dar el estilo correspodiente.

Si la tabla se genera en lenguaje de servidor la incorporo mediante esa forma.

En cambio si la tabla es manipulada con JavaScript utilizo este último para agregar las clases correspondientes.

Saludos

Etiquetas: color, colorear, filas, hover, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:42.