Foros del Web » Programando para Internet » PHP »

div de diferentes colores

Estas en el tema de div de diferentes colores en el foro de PHP en Foros del Web. Estoy intentando hacer un listado que cada linea tenga un color diferente de fondo, siguiendo la secuencia de impares de un color y pares de ...
  #1 (permalink)  
Antiguo 06/01/2013, 05:35
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 18 años, 10 meses
Puntos: 4
div de diferentes colores

Estoy intentando hacer un listado que cada linea tenga un color diferente de fondo, siguiendo la secuencia de impares de un color y pares de otro, consigo que la primera y la segunda lo cumplan pero todas las demás no se intercambian, os dejo el código a ver si me podeis ayudar.


Código PHP:
if(mysql_num_rows($rs)>0)
{
    
// Leemos el contenido de la plantilla de temas
    
$template implode(""file("templates/cuerpo.php"));
    include(
'templates/titulos.tpl');
    while(
$row mysql_fetch_assoc($rs))
    {
        
$color=($color==""?"#CCC":"#F6F6F6");
        
$row["color"] = $color;
        
mostrarTemplate($template$row);
    }

El código del archivo cuerpo.php

Código PHP:
<div class="titulos" style="background-color:<?=$color?>">
            <div class="titulo"><a href="foro.php?id=<?=$id?>"><?=$titulo?></a></div>
            <div class="autor"><font size="-2">Por <b><?=$nick?></b> el <?=$fecha?></font></div>
            <div class="repuestas"><font size="-2"><?=$respuestas?></font></div>
            <div class="ultmensaje"><font size="-2"><?=$ult_respuesta?></font></div>
</div>
Gracias de antemano.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #2 (permalink)  
Antiguo 06/01/2013, 06:11
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: div de diferentes colores

Bueno, yo no me complicaria tanto la vida y lo haria con estilos css que ya permiten hacer pares e impares, busca selectors en css3 para mas información. Ahi te dejo unos pero investiga que por la red tienen muchos ejemplos de como usarlos.

Cita:
E:only-of-type: un elemento que es único en su tipo.
E:not(s): un elemento que no coincide con los selector simples.
E ~ F: un elemento F precedido de un elemento E.
E:nth-child: un objeto que es el enésimo hijo del nodo padre.
E:nth-last-child: un objeto que es el último hijo del nodo padre.
E:nth-of-type: un elemento que es el enésimo nodo hijo de otro elemento.
E.first-of-type: el primer elemento de un tipo.


Otra manera que puedes hacerlo es usando un incremental (que podria empezar en 1) y con la función modulo verificas si es modulo 2 o no y con eso podrias definir un tipo de color para las columnas pares y por ende el otro seria impar y sigues incrementando el número para hacer la prueba con todos los resultados de la búsqueda.

Espero te sirva las sugerencias.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 06/01/2013, 06:27
tfe
 
Fecha de Ingreso: enero-2008
Mensajes: 26
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: div de diferentes colores

Hola

Si quieres hacerlo con php, debes de tener un contador para cada fila:

$numfila en este caso que se va incrementado en cada fetch.
Luego se utiliza numfila %2 que devuelve 0 o 1 segun que sea par o impar...

De todas formas para comprobar los datos que utilizas, puedes debugguear tus datos con print_r($row); , etc...


Código PHP:
if(mysql_num_rows($rs)>0)
{
        
$numfila=0;
    
// Leemos el contenido de la plantilla de temas
    
$template implode(""file("templates/cuerpo.php"));
    include(
'templates/titulos.tpl');
    while(
$row mysql_fetch_assoc($rs))
    {
                
$numfila++;
        
$color=($numfila%== ?"#CCC":"#F6F6F6");
        
$row["color"] = $color;
        
mostrarTemplate($template$row);
    }

  #4 (permalink)  
Antiguo 06/01/2013, 06:31
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: div de diferentes colores

Gracias tfe es lo que buscaba, funciona de maravilla.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #5 (permalink)  
Antiguo 06/01/2013, 07:28
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: div de diferentes colores

Yo haría preferiblemente lo que comenta cuasatar, por aquello de separar diseño de contenido y de paso no embeber CSS en el HTML.

En tu caso con algo así valdría:

Código CSS:
Ver original
  1. .titulos { background: #cccccc }
  2. .titulos:nth-child(2n+1) { background: #f6f6f6 }

Queda más limpio, más fácil de entender/editar y te ahorras unas lineas en PHP.

Etiquetas: colores, mysql
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 06:12.