Foros del Web » Programando para Internet » PHP »

asignar una clase css a un LI

Estas en el tema de asignar una clase css a un LI en el foro de PHP en Foros del Web. Hola a todos, Estoy creando una pagina que contiene un menu lateral hecho con listas <UL>, ese menú lateral está en un único archivo que ...
  #1 (permalink)  
Antiguo 29/07/2011, 04:10
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
asignar una clase css a un LI

Hola a todos,

Estoy creando una pagina que contiene un menu lateral hecho con listas <UL>, ese menú lateral está en un único archivo que después incluyo en todas la páginas en las cuales quiero mostrarlo.
Código HTML:
<ul>
  <li><a href="inicio.php">inicio</a></li>
  <li><a href="noticias.php">noticias</a></li>
  <li><a href="contacto.php">contacto</a></li>
  ...
</ul> 
Tengo una clase CSS llamada Current para cambiarle el estilo al <LI> que quiero que esté destacado (como página actual).
Código HTML:
<li class="current"><a href="pagina.php">pagina</a> 
Cada vez que cambio de página, por ejemplo inicio, noticias, etc, debería tener la clase css el <LI> correspondiente a la página actual (como se comporta cualquier menú).

Lo que no se es como detectar cual página está cargada e identificar a que LI corresponde para asignarle la clase css.

Por un momento pensé en usar "IF" y comparar la url con el link de cada item de la lista pero tendría que repetir el código tantas veces como enlaces tenga en el listado y creo que debe haber una forma mejor.

Una forma fácil es si tuviera ese menú en cada página (noticias, inicio, etc) y en cada una de forma manual le asigno la clase al elemento de la lista pero creo que no es lo optimo, además creo que es mejor tener en un sólo archivo el menú y ese archivo incluirlo en cada página, así lo estoy haciendo pero ahora se me presenta el problema antes descrito.

Por ahora no se me ocurre una solución así que pido la ayuda de los que mas saben para que me den una mano en esto.

Gracias.
  #2 (permalink)  
Antiguo 29/07/2011, 04:24
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: asignar una clase css a un LI

Buenas,

Es tan sencillo como usar una variable. Por lo que he entendido tienes el menú en un archivo único que luego incluyes en cada página. Pues bien, cuando tú haces un include, lo único que se hace es pegar el código del fichero en el sitio donde haces el include, luego las variables definidas en el archivo que estás, siguen definidas en el archivo incluido. Puedes usar eso para lo que tú buscas, te pongo un ejemplillo, que se ve mucho más rápido:

- Tienes un fichero (pongamos, menu.php) con lo siguiente:
Código PHP:
<ul>
  <
li><a href="inicio.php">inicio</a></li>
  <
li><a href="noticias.php">noticias</a></li>
  <
li><a href="contacto.php">contacto</a></li>
  ...
</
ul
- Tendrás una página para inicio.php, otra para noticias.php, otra para contacto.php... en la que, en cierto punto del código harás algo como lo siguiente:
Código PHP:
...
<?php include('menu.php'); ?>
...
Pues bien, es tan fácil como hacer lo siguiente:
inicio.php:
Código PHP:
...
<?php $current "inicio"; include('menu.php'); ?>
...
noticias.php:
Código PHP:
...
<?php $current "noticias"; include('menu.php'); ?>
...
contacto.php:
Código PHP:
...
<?php $current "contacto"; include('menu.php'); ?>
...
Y en el menu.php pones:
Código PHP:
<ul>
  <li><a href="inicio.php"<?php if ($current == "inicio") echo ' class="current"'?>>inicio</a></li>
  <li><a href="noticias.php"<?php if ($current == "noticias") echo ' class="current"'?>>noticias</a></li>
  <li><a href="contacto.php"<?php if ($current == "contacto") echo ' class="current"'?>>contacto</a></li>
  ...
</ul>
Espero que te sirva, a que es más fácil de lo que pensabas?

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 29/07/2011, 04:43
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: asignar una clase css a un LI

Muchas gracias vgonga1986 por tu ayuda, tienes razón, es más fácil de lo que pensaba.

Nuevamente gracias por la ayuda!!!


Saludos.
  #4 (permalink)  
Antiguo 29/07/2011, 04:46
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: asignar una clase css a un LI

Nada, me alegro de haber podido echarte un cable.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 29/07/2011, 06:04
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: asignar una clase css a un LI

Yo prefiero usar indentificadores numéricos!

Etiquetas: clase, css
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 09:43.