Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Problema con efecto subrayado en header

Estas en el tema de Problema con efecto subrayado en header en el foro de CSS en Foros del Web. Hola a todos. Veréis, me gustaría que la barra que subraya a los elementos del menú del header cuando se pasa el ratón por encima ...
  #1 (permalink)  
Antiguo 22/04/2015, 03:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con efecto subrayado en header

Hola a todos.

Veréis, me gustaría que la barra que subraya a los elementos del menú del header cuando se pasa el ratón por encima de ellos, se quedará subrayando permanentemente a la categoría que se seleccione, es decir la que esté :active

Pero no encuentro el código CSS correcto para lograrlo.

¿Alguien me echa un cable? La web es:

pla ne ta otc DOT com

Muchas gracias

Un saludo!
  #2 (permalink)  
Antiguo 22/04/2015, 03:14
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Problema con efecto subrayado en header

Podrías comprobar el enlace con JS (o jQuery) y entonces añadirle una clase.
__________________
¿Te sirvió la respuesta? Deja un +1
  #3 (permalink)  
Antiguo 22/04/2015, 04:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Buuff, se me escapa totalmente lo que comentas...

¿No es posible añadir alguna línea de código CSS simplemente?

Saludos y muchas gracias
  #4 (permalink)  
Antiguo 22/04/2015, 05:02
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Problema con efecto subrayado en header

No, solo con CSS no se puede, porque CSS simplemente le da el estilo.

Pero busca en Google "obtener enlace actual javascript" (o jQuery) (prueba en inglés si quieres) y vas investigando.
__________________
¿Te sirvió la respuesta? Deja un +1
  #5 (permalink)  
Antiguo 22/04/2015, 06:22
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 4 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
  #6 (permalink)  
Antiguo 22/04/2015, 06:38
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Muchas gracias a los dos.

La web es un blog Wordpress.

Fede, entiendo que tendría que añadir este código CSS:

Código:
a{
  text-decoration:none;
}
 
.active{
  text-decoration:underline;
}
Al styles.css de mi tema Wordpress, hasta ahí correcto.

Pero, ¿dónde agrego el código HTML y el código javascript?

Mil gracias.
  #7 (permalink)  
Antiguo 22/04/2015, 06:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Por cierto, veo en el código CSS text-decoration:underline

Esa función subraya las letras de forma distinta al subrayado actual de la web... ¿Añadiendo el HTML y el código javascript se consigue el mismo subrayado?

Edito: mi tema actual de Wordpress tiene un campo para introducir directamente HTML personalizado: Paste your custom code here, it will be added into the footer section of your site. You can use JS code with <script></script> tags. Also you can add Google Analytics or other tracking code into this field.

Así lo he hecho, he añadido el HTML, CSS y Javascript, he borrado la caché pero no veo ningún cambio.

Última edición por vidmartx; 22/04/2015 a las 06:47
  #8 (permalink)  
Antiguo 22/04/2015, 07:11
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 4 meses
Puntos: 208
Respuesta: Problema con efecto subrayado en header

Mmm.. no había podido abrir tu sitio antes, ahora si y veo que ese subrayado no es con underline.. Seguramente está hecho con ":after" o ":before" y animado con javascript..

No he trabajado con Wordpress no sabría como indicarte donde hacer cambios sinceramente.
  #9 (permalink)  
Antiguo 22/04/2015, 07:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Exacto, está hecho con :after
  #10 (permalink)  
Antiguo 22/04/2015, 14:33
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Problema con efecto subrayado en header

El problema es que añadirle una clase (en este caso, active por medio de jQuery) simplemente por hacerle click no hace que se mantenga el subrayado.

Ya te he dicho: debes obtener el enlace y entonces puedes añadir la clase.
Por ejemplo; con location.pathname compruebas si la URL es igual a, por ejemplo, /category/principiante/ y entonces sí le añades la clase con jQuery (o JS) al menú.
__________________
¿Te sirvió la respuesta? Deja un +1
  #11 (permalink)  
Antiguo 22/04/2015, 19:46
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

Lo que quieres es que si estoy en la categoría "análisis" se subraye "análisis" en el menú, y si voy a contacto se subraye "contacto" en el menú?

Muy simple, los menús de wordpress añaden una clase "current_page_item" al item de la pagina actual xD solo tienes que usar esa clase en tu "style.css".

El subrayado es un after con los estilos:
Código CSS:
Ver original
  1. display: block;
  2. content: "";
  3. position: absolute;
  4. left: 0px;
  5. bottom: -6px;
  6. margin: 0px auto -2px;
  7. width: 100%;
  8. opacity: 0;
  9. transition: all 0.3s ease 0s;
  10. height: 2px;
  11. background-color: #FFF;

Así que seria:

Código CSS:
Ver original
  1. .current_page_item:after {
  2. opacity: 1 !important;
  3. bottom: -2px !important;
  4. }

Saludos!
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.

Última edición por mardojai; 22/04/2015 a las 19:54
  #12 (permalink)  
Antiguo 23/04/2015, 02:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Hola mardojai

He añadido el código CSS que me indicas, pero el subrayado sigue sin aparecer... He probado también con current-menu-item pero nada...

¿Cuál puede ser el problema?

Muchísimas gracias a todos!
  #13 (permalink)  
Antiguo 23/04/2015, 06:26
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

Perdón XD creo que es:

Código CSS:
Ver original
  1. .current_page_item .w-nav-title:after {
  2.     opacity: 1 !important;
  3.     bottom: -2px !important;
  4.     }
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #14 (permalink)  
Antiguo 23/04/2015, 06:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Jajaja nada, no hay forma...
  #15 (permalink)  
Antiguo 23/04/2015, 07:13
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

Código CSS:
Ver original
  1. .current_page_item .w-nav-anchor.level_1 .w-nav-title::after {
  2.         opacity: 1 !important;
  3.         bottom: -2px !important;
  4.         }
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #16 (permalink)  
Antiguo 23/04/2015, 07:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

No hay manera! xD
  #17 (permalink)  
Antiguo 23/04/2015, 09:02
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

Lo has puesto bien?

Código CSS:
Ver original
  1. .current-menu-item .w-nav-title:after{bottom:-2px !important;opacity:1 !important;}
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #18 (permalink)  
Antiguo 23/04/2015, 09:52
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Sí, lo he escrito bien.

Este último que pones es otra versión distinta de código, la probaré al llegar a casa. De todas formas, edde el inspector de Chrome puedes comprobar tú mismo al añadir el CSS que no funciona...
  #19 (permalink)  
Antiguo 23/04/2015, 10:20
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

Me avisas cuando pongas el código para inspeccionar el código de la web
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #20 (permalink)  
Antiguo 23/04/2015, 11:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Ya está cambiado.

Muchas gracias por tu tiempo, de verdad.

Edito: ¡Vaya tela! Para darme una paliza, como lo estaba mirando desde el móvil se me ha pasado, acabo de darme cuenta ahora desde el sobremesa. Estaba poniendo current_menu en vez de current-menu, es decir, guión bajo en vez de guión normal. Es que lo copié así tal cual de tu penúltimo código (donde se te colaron dos puntos extra antes del after también xD).

Ya funciona correctamente todo. El código final ha sido:

Código:
.current-menu-item .w-nav-title:after {
opacity: 1 !important;
bottom: -2px !important;
}
Por si le sirve a alguien más.

Muchísimas gracias por tu ayuda mardojai, da gusto encontrarse con gente como tú en los foros, con tantas ganas de ayudar. Voto positivo para ti.

Un saludo!!
  #21 (permalink)  
Antiguo 23/04/2015, 11:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

El que no se queda subrayado es el Foro. Antes tampoco se quedaba coloreado, no sé por qué...

He tenido que añadir .current-menu-parent para que se subraye también "Aprendizaje" cuando navego por alguno de sus submenús.

Última edición por vidmartx; 23/04/2015 a las 11:49
  #22 (permalink)  
Antiguo 23/04/2015, 12:28
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

Si, cierto, el "current-menu-parent" es para que se active el menú principal cuando tienes sub-menus.

El problema del Foro parece ser un problema de compatibilidad del BBPress que no le añade la clase al menú, a pesar de estar en el foro.

Prueba con esto:

Ve al admin de Wordpress y edita tu menú en Apariencia => Menús.
Cuando estés en la edición de menús, en la esquina superior derecha dice "Opciones de pantalla", lo abres y en el panel marcas el check "Clases CSS".
Después edita "Foro" en tu menú, y veras un nuevo campo que dice "Clases CSS (opcional)" ahí pon "forum-class".
Luego de eso en el head de tu tema añade esté script jquery:

Código Javascript:
Ver original
  1. $(function() {
  2.           var forumURL = window.location.href.indexOf("http://planetaotc.com/forum/");
  3.           if(forumURL > -1){
  4.             $('li.forum-class').addClass('current-menu-item');
  5.           }
  6.     });

Ojala te sirva, Saludos!
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #23 (permalink)  
Antiguo 23/04/2015, 12:55
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Justo estaba mirando yo también esa solución que proponen en los foros de bbpress.

He añadido la clase CSS sin problemas. El script lo he copiado en el header.php justo antes de cerrar la etiqueta head, pero sólo consigo que me aparezca todo ese texto justo encima del header de la web, una línea de texto encima del logo.

He puesto el script en el footer, a través de una opción que lleva mi tema para cargar código, como por ejemplo Google Analytics. No estoy seguro de si se está ejecutando, pero creo que sí. Parece que no funciona, seguiré investigando y si consigo sacarlo lo pongo aquí.

Muchas gracias.

Última edición por vidmartx; 23/04/2015 a las 13:06
  #24 (permalink)  
Antiguo 23/04/2015, 13:20
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

Tu tema tiene Jquery?

Prueba añadiendo esto al "functions.php" de tu tema.

Código PHP:
Ver original
  1. if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
  2. function my_jquery_enqueue() {
  3.    wp_deregister_script('jquery');
  4.    wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", false, null);
  5.    wp_enqueue_script('jquery');
  6. }
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #25 (permalink)  
Antiguo 23/04/2015, 13:23
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

En todo caso que sea así:


Código HTML:
Ver original
  1. <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
  2. $(function() {
  3.           var forumURL = window.location.href.indexOf("http://planetaotc.com/forum/");
  4.           if(forumURL > -1){
  5.             $('li.forum-class').addClass('current-menu-item');
  6.           }
  7.     });
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #26 (permalink)  
Antiguo 24/04/2015, 00:48
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

El tema soporta Jquery.

El código que pones en el último mensaje creía que decías que lo pusiera en el functions.php en lugar del código del mensaje previo, pero al hacerlo me daba un error la web, así que supuse que te referías a que pusiera ese código en el campo del footer del tema, donde me deja añadir código HTML y JS. Lo he hecho pero sigue sin funcionar.

La verdad es que no sé si se está ejecutando o he hecho algo mal y la web no está cargando el código realmente.

Edito: un momento, ahora sí funciona. Todo correcto, se subraya Foro tanto al entrar en la raíz como al entrar en cada debate.

¡Mil gracias!

Última edición por vidmartx; 24/04/2015 a las 00:58
  #27 (permalink)  
Antiguo 24/04/2015, 07:28
Avatar de mardojai  
Fecha de Ingreso: noviembre-2012
Ubicación: Lima, Perú
Mensajes: 137
Antigüedad: 11 años, 4 meses
Puntos: 44
Respuesta: Problema con efecto subrayado en header

No olvides marcarlo como solucionado xD
__________________
El que supera a otros es poderoso, y el que se supera a sí mismo es invencible.
__________________
Si te sirvió puntúa.
  #28 (permalink)  
Antiguo 24/04/2015, 07:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 30
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con efecto subrayado en header

Perdona, no lo había visto.

Muchísimas gracias de nuevo por la ayuda.

Un saludo!

Etiquetas: efecto, header, todo
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 10:54.