Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/06/2012, 18:08
Avatar de cristian_cena
cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: Asignar CLASS según la Página

Seria bueno saber con que lenguaje/s estas trabajando. Es decir, podes hacerlo "a mano" por cada archivo html pero te vas a volver loco y mantener ese código sería una pesadilla.

Te dejo un ejemplo con javascript, donde la variable "pagina" representa la pagina activa. Variable que simplemente podrías incrementar/decrementar, o que además pasarás por get/post al servidor en caso de que operes de ese lado. Por eso, repito, es muy importante saber con que estas trabajando y si tu problema es con el menu o con el paginador.
Código HTML:
Ver original
  1. <a href="pag1.php">la clave</a>
  2. <a href="pag2.php">esta en la</a>
  3. <a href="pag3.php">variable "pagina"</a>
  4. <!-- enlaces.length será igual a 2, o sea, tres elementos contando desde el cero. -->
Código CSS:
Ver original
  1. a{  /*por defecto desactivo*/
  2.     padding: 0.3em;
  3.     background: whitesmoke;
  4. }
  5. .seleccionado{
  6.     /*estilo para el enlace activo*/
  7.     background: yellowgreen;
  8. }
Código Javascript:
Ver original
  1. var pagina = 1; // empieza a contar de uno
  2. //  pagina = prompt("ingrese el nro de pag."); // o le preguntamos al usuario
  3.  
  4. var seleccionado = "seleccionado"; //nombre de la clase activa. Por defecto se ve desactivo, mirar el css.
  5. var enlaces = document.getElementsByTagName("a"); //todos los enlaces
  6.    
  7. window.onload = function(){ //cuando cargue la pagina...
  8.     if(pagina >= 1 && pagina <= enlaces.length){ //validamos la variable pagina.
  9.         pagina = pagina - 1;  // porque los arrays empiezan a contar de cero.  
  10.         for(i=0; i<enlaces.length; i++){ //recorremos los enlaces
  11.             if(i == pagina){ //cuando el indice sea igual a la variable pagina
  12.                 enlaces[i].className = " seleccionado"; //añadimos la clase
  13.             }
  14.         }
  15.     }
  16.     else{
  17.        //si la pagina no corresponde con la cantidad de enlaces.
  18.     }
  19. }
Independientemente del lenguaje la logica sería:
  • disponer de una variable contador (en nuestro caso "pagina") para incrementar/decrementar la pagina actual.
  • Si consultas una base de datos y pretendes hacer un listado de registros: entonces retornar un límite (en sql con el comando "LIMIT"). Con lo cual tendras el numero de registros por pagina.
  • retornar la cantidad de registros totales y dividirlo por la cantidad de registros por paginas para obtener la cantidad de paginas (en nuestro ejemplo "enlaces").
tip: usamos la propiedad "length" de los arrays javascript para obtener la cantidad de paginas. Para hacer lo mismo en php debes usar la funcion .count()
Luego, estes donde estes, el trabajo con arrays, bucles y condicionales, salvando algunas distancias de sintaxis tal vez, te será muy similar.

A estas alturas ya el tema se disparó del alcance de css como tal, dependiendo tu lenguaje será el foro que te convenga.
Espero haber sido de ayuda.

Saludos.