Foros del Web » Programando para Internet » PHP » CodeIgniter »

Añadir estilo menu codeigniter

Estas en el tema de Añadir estilo menu codeigniter en el foro de CodeIgniter en Foros del Web. Buenas, estoy empezando con Codeigniter, y no se si lo estoy haciendo bien, además de que me surgen algunas dudas como esta que os traigo. ...
  #1 (permalink)  
Antiguo 15/03/2012, 05:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 116
Antigüedad: 16 años
Puntos: 0
Añadir estilo menu codeigniter

Buenas, estoy empezando con Codeigniter, y no se si lo estoy haciendo bien, además de que me surgen algunas dudas como esta que os traigo.
Este es mi controlador por defecto:
inicio.php
Código PHP:
Ver original
  1. <?php
  2. class Inicio extends CI_Controller {   
  3.     public function index(){
  4.         $data['main'] = 'inicio';
  5.         $data['title'] = 'MiPagina| Inicio';
  6.         $this->load->view('includes/plantilla',$data);
  7.     }  
  8. }
Todos mis controladores tienen la misma forma, solo cambia los datos previos a cargar la vista includes/plantilla, la cual cargo en todos los controladores, y que será la estructura de mi página, con este contenido:
plantilla.php
Código PHP:
Ver original
  1. <?php
  2. $this->load->view('includes/metas');
  3. $this->load->view('includes/head');
  4. $this->load->view('includes/menu');
  5. // Contenido dinámico
  6. $this->load->view($main);
  7. $this->load->view('includes/foot');
  8. ?>
Cargo las distintas partes de mi pagina, y donde pone $main, será el data=['main'] del controlador, así voy cargando las distintas páginas. En menu.php tengo:
Código HTML:
Ver original
  1. <div id="menu">
  2.     <ul id="nav">
  3.         <li><a href="<?php echo base_url(); ?>">Inicio</a></li>
  4.         <li><a href="<?php echo base_url(); ?>link1/">Link1</a></li>
  5.         <li><a href="<?php echo base_url(); ?>link2/">Link2</a></li>
  6.         <li><a href="<?php echo base_url(); ?>link3/">Link3</a></li>
  7.         <li><a href="<?php echo base_url(); ?>link4/">Link4</a></li>
  8.     </ul>
  9. </div>
Pues bien, la duda que me surge es que como hago para añadirle una class="activo" al elemento del menu correspondiente con la página que estoy ahora mismo, es decir, si estoy en link2, ¿como hago para que este elemento tenga un estilo distinto al de los demás?.
He puesto todo el código para saber si existe una forma mejor y más sencilla de hacer el menú con codeigniter que no sea esta, y que me permita hacer lo que necesito sin muchas complicaciones.

Gracias de antemano y saludos.
  #2 (permalink)  
Antiguo 21/03/2012, 09:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 116
Antigüedad: 16 años
Puntos: 0
Respuesta: Añadir estilo menu codeigniter

He conseguido hacerlo, y quiero compartirlo, por si alguien tiene la misma duda, aunque me gustaría que me dijeran si es una buena forma de hacerlo o hay algún tipo de problema.
Lo he hecho añadiendo algo como esto a cada controlador:
Código PHP:
Ver original
  1. $data['body'] = 'b_inicio':
Para luego poner en la vista plantilla.php:
Código PHP:
Ver original
  1. echo '<body id="'.$body.'">';
Añado un id a cada item de la lista:
Código HTML:
Ver original
  1. <li><a href="<?php echo base_url(); ?>" id="nav_inicio">Inicio</a></li>
  2. <li><a href="<?php echo base_url(); ?>link1/" id="nav_link1">Link1</a></li>
Y luego en el css:
Código CSS:
Ver original
  1. #b_inicio  #nav_inicio, #b_link1  #nav_link1 {background:black;}
Así cuando esté en la página "inicio", tendré:
Código HTML:
Ver original
  1. <body id="b_inicio">
Y solo se coloreará el que tenga:
Código HTML:
Ver original
  1. <li><a href="<?php echo base_url(); ?>" id="nav_inicio">Inicio</a></li>
  #3 (permalink)  
Antiguo 25/04/2012, 02:08
 
Fecha de Ingreso: abril-2009
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
Busqueda Respuesta: Añadir estilo menu codeigniter

Hola...pero eso no hace que tengas el :
hover, active y el link, c/u con sus propiedades distintas
Lo que veo que haces, lo puedes hacer en "duro"
tienes un ejemplo para verlo?
Slds

Etiquetas: class, 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.