Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/04/2015, 06:22
Avatar de fede5426
fede5426
 
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 5 meses
Puntos: 208
Respuesta: Problema con efecto subrayado en header

Con CSS la única forma es agregarle la clase al menu activo de cada pagina que hagas, siempre y cuando tengas un archivo para cada sección, index.html, contacto.html, etc.

Con JQuery, una de las formas más fáciles, es esta:

Código HTML:
Ver original
  1. <ul>
  2.   <li><a href="#">item 1</a></li>
  3.   <li><a href="#">item 2</a></li>
  4.   <li><a href="#">item 3</a></li>
  5.   <li><a href="#">item 4</a></li>
  6. </ul>

Código CSS:
Ver original
  1. a{
  2.   text-decoration:none;
  3. }
  4.  
  5. .active{
  6.   text-decoration:underline;
  7. }

Código Javascript:
Ver original
  1. $("a").click(function(){
  2.     $("a").removeClass("active"); //Quitamos la clase "active" a todos los enlaces
  3.     $(this).addClass("active"); //Agregamos la clase "active" al enlace clickeado
  4. });

Obviamente para que esto no pase en TODOS los enlaces, es conveniente poner una clase extra a los enlaces, por ejemplo "menu" (para solo identificar esos enlaces) y el código te quedaria asi:

Código HTML:
Ver original
  1. <ul>
  2.   <li><a href="#" class="menu">item 1</a></li>
  3.   <li><a href="#" class="menu">item 2</a></li>
  4.   <li><a href="#" class="menu">item 3</a></li>
  5.   <li><a href="#" class="menu">item 4</a></li>
  6. </ul>

Código CSS:
Ver original
  1. a{
  2.   text-decoration:none;
  3. }
  4.  
  5. .active{
  6.   text-decoration:underline;
  7. }

Código Javascript:
Ver original
  1. $("a.menu").click(function(){
  2.     $("a.menu").removeClass("active");
  3.     $(this).addClass("active");
  4. });

Ejemplo: http://codepen.io/anon/pen/gpOgxO

Saludos