Foros del Web » Creando para Internet » Diseño web »

[SOLUCIONADO] ¿Algún buen tutorial de menú para móviles?

Estas en el tema de ¿Algún buen tutorial de menú para móviles? en el foro de Diseño web en Foros del Web. Hola: Bueno, lo dicho. Necesito un buen tutorial de menú para móviles, porque ya me duele la cabeza: - Solo CSS (no jquery, no javascript) ...
  #1 (permalink)  
Antiguo 20/06/2015, 11:40
Avatar de Tedel  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 2.744
Antigüedad: 13 años, 3 meses
Puntos: 444
¿Algún buen tutorial de menú para móviles?

Hola:

Bueno, lo dicho. Necesito un buen tutorial de menú para móviles, porque ya me duele la cabeza:

- Solo CSS (no jquery, no javascript)
- Responsive
- Con position:fixed para que se quede en la parte superior
- Opcional, con Flexbox también, pues es más práctico para la maquetación.

¿Alguien me da un link, por favor?
__________________
Soy el autor de Heptagrama y tengo un servicio "todo incluido" de marketing web.
  #2 (permalink)  
Antiguo 22/06/2015, 03:23
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: ¿Algún buen tutorial de menú para móviles?

No creo que haya nada de malo en usar JavaScript para en un móvil. El que no tenga activado JavaScript en un móvil debe de ser un tipo bastante siniestro.
__________________
(:
  #3 (permalink)  
Antiguo 22/06/2015, 09:20
Avatar de Tedel  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 2.744
Antigüedad: 13 años, 3 meses
Puntos: 444
Respuesta: ¿Algún buen tutorial de menú para móviles?

jajajaja... No es por él... es por mí. ¡Yo no sé Javascript!
__________________
Soy el autor de Heptagrama y tengo un servicio "todo incluido" de marketing web.
  #4 (permalink)  
Antiguo 22/06/2015, 11:41
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 5 meses
Puntos: 208
Respuesta: ¿Algún buen tutorial de menú para móviles?

Hola Jorge, no se si existe tal tutorial ya que lo más lógico normalmente es hacerlo con javascript. A demás CSS no consta de eventos, crear un efecto "toggle" de menú para móviles puede ser complicado.. Pero yo conozco una forma que puede servirte, y es usando la propiedad :checked de los input de tipo checkbox.

Crear la barra de navegación adaptable para maquinas de escritorio o notebooks es simple, imagino que ya lo sabes, no es cosa de otro mundo. Y para que en móviles cambie de forma la lista se usan media queries, indicar que a determinada resolución cambien sus propiedades (como vas a ver en el ejemplo que voy a dejar más abajo), en mi caso cambio de lista horizontal a vertical modificando la propiedad display, cambio su position a absolute, y la oculto a la izquierda para luego hacerla aparecer clickeando el típico botón de menú (en este caso, el checkbox).

Para lograr el efecto toggle (toque para abrir y toque para cerrar) como dije una forma es usar un checkbox aprovechando la propiedad :checked de CSS3.

A ver si puedo explicarme mejor antes de dejar el ejemplo, la idea es básicamente crear un input type="checkbox" y ocultarlo con display:none; Seguido del input, su perteneciente label, a éste label le vamos a dar los estilos que querramos que tenga el botón. Por debajo, la lista del menú de navegación. Lo último que necesitamos hacer es indicar que cuando el checkbox este tildado (:checked) su hermano (~ ul) cambie su propiedad left a 0 para que aparezca desde la izquierda. Se pueden usar varios métodos de aparición, desde diferentes posiciones o cambiando su display para que aparezca sin más..

Hay otra forma de hacer aparecer la lista, que es usando :focus en un elemento, por ejemplo en un enlace que contenga la imagen de menú o la palabra MENÚ o lo que sea, al clickearlo toma el foco y se despliega el elemento. La contra de este método es que para cerrarlo no funciona si lo clickeamos nuevamente porque mantiene el foco, la única forma es clickear/tocar fuera del elemento. Por eso no la veo tan viable como la que acabo de explicar.

En fin, dejo el código por acá abajo y un codepen funcionando para que lo revises. Espero haberme explicado bien y que te sea útil.


Código HTML:
Ver original
  1. <nav>
  2.    <input type="checkbox" id="boton" />
  3.    <label for="boton"><span></span> </label>
  4.    <ul>
  5.       <li><a href="#">Home</a></li>
  6.       <li><a href="#">About</a></li>
  7.       <li><a href="#">Clients</a></li>
  8.       <li><a href="#">Contact Us</a></li>
  9.    </ul>
  10. </nav>

Código CSS:
Ver original
  1. body{
  2.     margin:0;
  3.     padding:0;
  4. }
  5.  
  6. nav{
  7.     width:100%;
  8.     background-color:#A32600;
  9.     padding:.5em;
  10.     min-height:45px;
  11.     position:relative;
  12.     border-bottom:1px solid #ccc;
  13. }
  14.  
  15. ul{
  16.     background-color:#A32600;
  17. }
  18.  
  19. li{
  20.     display:inline-block;
  21. }
  22.  
  23. li a{
  24.     color:#ccc;
  25.     font-family:Verdana;
  26.     padding:1em 1em;
  27.     text-decoration:none;
  28. }
  29.  
  30. li a:hover{
  31.     background-color:#161616;  
  32. }
  33.  
  34. #boton{
  35.     display:none
  36. }
  37.  
  38. label span{
  39.     background-image:url("http://i.imgur.com/NN6xrxu.png");
  40.     background-size:100%;
  41.     width:35px;
  42.     height:35px;
  43.     display:none;
  44.     cursor:pointer;
  45. }
  46.  
  47. @media screen and (max-width:480px){
  48.    
  49.     ul{
  50.         position:absolute;
  51.         top:100%;
  52.         left:-100%;
  53.         width:75%;
  54.         margin:0;
  55.         padding:0;
  56.         background-color:#D63200;
  57.         -webkit-transition:left .3s linear;
  58.         -moz-transition:left .3s linear;
  59.         -ms-transition:left .3s linear;
  60.         -o-transition:left .3s linear;
  61.         transition:left .3s linear;
  62.     }
  63.    
  64.     li{
  65.         display:block;
  66.         border-bottom:1px solid #ccc;
  67.     }
  68.  
  69.     li a{
  70.         display:block;
  71.     }
  72.    
  73.     label span{
  74.         display:block;
  75.     }
  76.    
  77.     #boton:checked ~ ul{
  78.         left:0;
  79.     }
  80. }


http://codepen.io/fede5426/pen/WvXeoG

Saludos
  #5 (permalink)  
Antiguo 23/06/2015, 08:35
Avatar de Tedel  
Fecha de Ingreso: enero-2011
Ubicación: Lima
Mensajes: 2.744
Antigüedad: 13 años, 3 meses
Puntos: 444
Respuesta: ¿Algún buen tutorial de menú para móviles?

Genial, muchas gracias
__________________
Soy el autor de Heptagrama y tengo un servicio "todo incluido" de marketing web.

Etiquetas: css, navegacion
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 04:07.