f?:@'.$&2& %g&1'210*%a'*5% h&$02'$$%!5&102$%!,ij · fecha...

8
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener... 1. Desarrollo de componentes y proyectos a medida Tecnología Desarrollo Sistemas Gran Empresa Producción autentia Certificación o Pruebas Verificación previa RFP Concurso Consultora 1 Consultora 2 Consultora 3 Equipo propio desarrollo Piloto 3a 3b 1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción. 3. Arranque de proyectos basados en nuevas tecnologías ¿Qué ofrece Autentia Real Business Solutions S.L? Para más información visítenos en: www.autentia.com Compartimos nuestro conociemiento en: www.adictosaltrabajo.com Gestor portales (Liferay) Gestor de contenidos (Alfresco) Aplicaciones híbridas Tareas programadas (Quartz) Gestor documental (Alfresco) Inversión de control (Spring) BPM (jBPM o Bonita) Generación de informes (JasperReport) ESB (Open ESB) Control de autenticación y acceso (Spring Security) UDDI Web Services Rest Services Social SSO SSO (Cas) Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery JPA-Hibernate, MyBatis Motor de búsqueda empresarial (Solr) ETL (Talend) Dirección de Proyectos Informáticos. Metodologías ágiles Patrones de diseño TDD 2. Auditoría de código y recomendaciones de mejora 4. Cursos de formación (impartidos por desarrolladores en activo)

Upload: others

Post on 04-Nov-2019

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

Avenida de Castilla,1 - Edificio Best Point - Oficina 21B28830 San Fernando de Henares (Madrid)

tel./fax: +34 91 675 33 [email protected] - www.autentia.com

Somos su empresa de Soporte a Desarrollo Informático.Ese apoyo que siempre quiso tener...

1. Desarrollo de componentes y proyectos a medida

TecnologíaDesarrolloSistemas

Gran Empresa

Producción

autentia

Certificacióno Pruebas

Verificación previa

RFP Concurso

Consultora 1

Consultora 2

Consultora 3

Equipo propio desarrolloPiloto

3a

3b

1. Definición de frameworks corporativos.2. Transferencia de conocimiento de nuevas arquitecturas.3. Soporte al arranque de proyectos.4. Auditoría preventiva periódica de calidad.5. Revisión previa a la certificación de proyectos.6. Extensión de capacidad de equipos de calidad.7. Identificación de problemas en producción.

3. Arranque de proyectos basados en nuevas tecnologías

¿Qué ofrece Autentia Real Business Solutions S.L?

Para más información visítenos en: www.autentia.com

Compartimos nuestro conociemiento en: www.adictosaltrabajo.com

Gestor portales (Liferay)Gestor de contenidos (Alfresco)Aplicaciones híbridas

Tareas programadas (Quartz)Gestor documental (Alfresco)Inversión de control (Spring)

BPM (jBPM o Bonita)Generación de informes (JasperReport)ESB (Open ESB)

Control de autenticación y acceso (Spring Security)UDDIWeb ServicesRest ServicesSocial SSOSSO (Cas)

Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery

JPA-Hibernate, MyBatisMotor de búsqueda empresarial (Solr)ETL (Talend)

Dirección de Proyectos Informáticos.Metodologías ágilesPatrones de diseñoTDD

2. Auditoría de código y recomendaciones de mejora

4. Cursos de formación (impartidos por desarrolladores en activo)

Page 2: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

12/2/2015 Diseñando un menú responsive con HTML5, CSS3 y jQuery.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=menuResponsive 1/7

Entra en Adictos a través de

Entrar

E­mail

Contraseña

RegistrarmeOlvidé mi contraseña

Inicio Quiénes somos Formación Comparador de salarios Nuestros libros Más

» Estás en: Inicio Tutoriales Diseñando un menú responsive con HTML5, CSS3 y jQuery.

Síguenos a través

de:

Catálogo de servicios

Autentia

Últimas Noticias

» 2015: ¡Volvemos a la oficina!

» Curso JBoss de Red Hat

» Si eres el responsable o lídertécnico, considératedesafortunado. No puedesculpar a nadie por ser gris

» Portales, gestores decontenidos documentales ydesarrollos a medida

» Comentando el libro Start­upNation, La historia del milagroeconómico de Israel, de DanSenor & Salu Singer

Histórico de noticias

Últimos Tutoriales

» Servicios REST con SpringMVC y AngularJS

» Analiza el código de tuaplicación Android conSonarQube

» Templates en Eclipse

» Pruebas automáticas conFTP

Ver todos los tutoriales del autor

Sara Subijana Gracia

Consultor tecnológico de desarrollo de proyectos informáticos.

Puedes encontrarme en Autentia: Ofrecemos de servicios soporte a desarrollo, factoría yformación

Somos expertos en Java/J2EE

Fecha de publicación del tutorial: 2015­02­12 Tutorial visitado 2 veces Descargar en PDF

Cómo adaptar el menú de nuestra página web a un diseño

responsive

Índice de contenidos

1. Entorno de desarrollo2. Introducción3. Instalando las herramientas4. Diseño inicial de nuestro menú5. Mostrando/ocultando el menú en la vista responsive6. Media queries: haciendo nuestro menú responsive7. Conclusiones

1. Entorno

El tutorial está escrito usando el siguiente entorno:

Hardware: Portátil MacBook Pro 15 pulgadas (2.4 GHz Intel i7, 8GB 1333 Mhz DDR3, 500GB Flash Storage).

Sistema Operativo: Mac OS X Mavericks 10.9.5

Sublime text 2.0.2

jQuery 2.1.3

Normalize.css v3.0.2

2. Introducción

En los tiempos actuales, el diseño de las páginas web tiene que ser responsive para que pueda ser navegable desde cualquiertipo de dispositivo. El diseño responsive implica que las dimensiones y distribución de los elementos en la página varíen enfunción de las dimensiones de la pantalla que está mostrando el contenido.

Aunque ya disponemos de una gran cantidad de librerías que nos permiten dar un diseño responsive a nuestras web, comoBootstrap, a veces perdemos transparencia y no somos conscientes de qué aspectos hay que tener en cuenta para hacer undiseño lo más flexible posible.

En este tutorial aprenderemos cómo diseñar el menú de una página web responsive a través de CSS3 y JavaScript, de modoque en pantallas grandes se muestre de manera tradicional, opciones de menú alineadas en una cabecera, y para pequeñosdispositivos quede oculto y mostrarse sólo al hacer click sobre un elemento concreto de la página.

3. Instalando las herramientas

Para el desarrollo de este tutorial, se han utilizado las herramientas normalize.css y jQuery. Para instalar las últimasversiones podemos acceder a los sitios web de jquery y normalize.css y descargar directamente los fuentes o instalarlos através de npm:

Page 3: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

12/2/2015 Diseñando un menú responsive con HTML5, CSS3 y jQuery.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=menuResponsive 2/7

» Oracle ­ Importación deDatos con Data Pump Import[impdp]

Últimos Tutoriales del

Autor

» Desarrollando una aplicaciónde detección de iBeacons

Para jquery: npm install jqueryPara normalize.css: npm install normalize.css

En nuestro tutorial, hemos instalado estas dependencias a través de npm, por lo que las rutas son relativas al directorio node­modules.

4. Diseño inicial de nuestro menú

Vamos a diseñar una web muy sencilla que constará de lo siguiente:

Una cabecera con un logo en la parte izquierda y un menú en la parte derechaEl menú constará de las opciones Archivo, Sobre mí y Contacto

El body de nuestra página será un parráfo con texto

Utilizaremos HTML5 para la maquetación de la página index.html, quedando como sigue:

Añadimos los estilos en un fichero aparte styles.css en el directorio raíz:

El contenido de la hoja de estilos es el siguiente:

1234567891011121314151617181920212223242526272829

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF­8"> <title>Mi web</title> <meta name="viewport" content="width=device­width, initial­scale=1" /> <link rel="stylesheet" href="node_modules/normalize.css/normalize.css" ></head><body> <header class="page­header"> <div class="center­contents"> <a class="logo" href="#" title=""><img src="images/logo­example.png" alt=""></a> <nav class="page­nav"> <ul> <li><a href="#" title="">Archive</a></li> <li><a href="#" title="">About us</a></li> <li><a href="#" title="">Contact</a></li> </ul> </nav> </div> </header> <main class="page­contents"> <h1>Titular de la página</h1> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia recusandae ipsa beatae consequuntur. Dolor repudiandae fugiat, rem, adipisci sit tenetur dolores corrupti amet molestiae, consequatur labore. Laboriosam sit voluptate quaerat!</ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia recusandae ipsa beatae consequuntur. Dolor repudiandae fugiat, rem, adipisci sit tenetur dolores corrupti amet molestiae, consequatur labore. Laboriosam sit voluptate quaerat!</ </main></body></html>

123456789101112131415161718192021222324252627

/************************ HEADER ************************/ .page­header overflow: hidden; background: #444; padding: 1em 0 0 ; .page­header .center­contents max­width: 650px; margin:auto; overflow: hidden; .logo max­width: 60px; display: block; float: left; margin: 0 0 1em 1em; .logo img display: block;

?

?

Page 4: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

12/2/2015 Diseñando un menú responsive con HTML5, CSS3 y jQuery.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=menuResponsive 3/7

La apariencia de nuestro menú inicial es la siguiente:

5. Mostrando/ocultando el menú en la vista responsive

Aunque el diseño de nuestra página es responsive, el diseño del menú no es el más adecuado para dispositivos pequeños. Aligual que hacen librerías como Bootstrap, vamos a hacer que cuando el tamaño sea reducido el menú se comprima y sólo alseleccionarlo se despliegue y nos muestre las opciones.

Partiremos de un diseño inicial para resoluciones pequeñas en el que aparece nuestro menú oculto y una etiqueta que flote ala derecha de nuestra cabecera y a la que daremos comportamiento para que al hacer click sobre ella desplegue/oculte elmenu:

2829303132333435363738394041424344454647484950515253545556575859

.page­nav color: #fff; float:right; .page­nav ul, .page­nav li list­style:none; margin:0; padding: 0; float: left; .page­nav a color: #fff; width: 100%; height: auto; display: block; padding: 0.75em 1em; text­decoration: none; cursor: pointer; /************************ MAIN CONTENTS ************************/ .page­contents padding:0 1em; max­width: 650px; margin:auto;

123456789101112131415161718192021222324252627282930313233

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF­8"> <title>Mi web</title> <meta name="viewport" content="width=device­width, initial­scale=1" /> <link rel="stylesheet" href="node_modules/normalize.css/normalize.css" ></head><body> <header class="page­header"> <div class="center­contents"> <div;> <a class="logo" href="#" title=""><img src="images/logo­example.png" alt=""></a> <span class="toggle­nav">Menu</span> </div;> <nav class="page­nav collapse"> <ul> <li><a href="#" title="">Archive</a></li> <li><a href="#" title="">About us</a></li> <li><a href="#" title="">Contact</a></li> </ul> </nav> </div> </header> <main class="page­contents"> <h1>Titular de la página</h1> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia recusandae ipsa beatae consequuntur. Dolor repudiandae fugiat, rem, adipisci sit tenetur dolores corrupti amet molestiae, consequatur labore. Laboriosam sit voluptate quaerat!</ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia recusandae ipsa beatae consequuntur. Dolor repudiandae fugiat, rem, adipisci sit tenetur dolores corrupti amet molestiae, consequatur labore. Laboriosam sit voluptate quaerat!</ </main> <script type="text/javascript" src="node_modules/jquery/dist/jquery.min.js"></script>

?

Page 5: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

12/2/2015 Diseñando un menú responsive con HTML5, CSS3 y jQuery.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=menuResponsive 4/7

Y las clases CSS que consiguen este efecto son las siguientes:

Como vemos, el menú se oculta a través de la propiedad de CSS3 de visibility. Para conseguir un efecto de que el menú seexpande y contrae al mostrarse, hemos añadido transiciones en el height del header y en visibility del nav.

Ahora debemos añadir un manejador del evento de click sobre la etiqueta de menú para añadir/quitar las clases quemuestran/ocultan el menú. Para ello, utilizaremos jQuery. Creamos en nuestro directorio raíz un fichero application.js y loreferenciamos inmediatamente después de la librería de jquery en nuestro index.html:

El script deberá controlar el evento de click y al capturarlo hacer un toggle de las clases .collapse y .menu­expanded en laetiqueta y header respectivamente. Los selectores de elementos siempre serán a través de clases CSS y no deidentificadores:

La apariencia de nuestro menú oculto:

3435

</body></html>

123456789101112131415161718192021222324252627282930313233343536373839404142434445

.page­header overflow: hidden; background: #444; padding: 1em 0 0 ; height: 4em; transition:all .4s linear; .page­nav color: #fff; clear:left; position: relative; visibility: inherit; transition:visibility .4s linear; .page­nav a color: #fff; width: 100%; height: auto; display: block; padding: 0.75em 1em; text­decoration: none; border­top:#666 1px solid; cursor: pointer; .toggle­nav float: right; padding: 1em; margin: 0 0 1em 1em; color: rgb(255,255,255); cursor: pointer; .page­nav.collapse visibility: hidden; .menu­expanded height: 11em;

12345678910111213141516171819

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF­8"> <title>Mi web</title> <meta name="viewport" content="width=device­width, initial­scale=1" /> <link rel="stylesheet" href="node_modules/normalize.css/normalize.css" ></head><body> ... <main class="page­contents"> ... </main> <script type="text/javascript" src="node_modules/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="application.js"></script> </body></html>

123456789

function toggleNavigation() $('.page­header').toggleClass('menu­expanded'); $('.page­nav').toggleClass('collapse'); // EVENTOS DEL DOM$(window).on('load',function() $('.toggle­nav').click(toggleNavigation););

?

?

?

Page 6: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

12/2/2015 Diseñando un menú responsive con HTML5, CSS3 y jQuery.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=menuResponsive 5/7

Al desplegarlo:

6. Media queries: haciendo nuestro menú responsive

Una vez ya tenemos los dos diseños de menú, a través de media queries, podemos aplicar unas clases u otras a nuestroscomponentes para así ver el menú con el primer diseño para pantallas grandes (anchura mínima de 700px) y el oculto parapequeñas (mínima de 450px) :

12345678910111213141516171819202122232425262728293031323334353637383940

/************************ HEADER************************/ .page­header overflow: hidden; background: #444; padding: 1em 0 0 ; height: 4em; transition:all .4s linear; .page­header .center­contents max­width: 650px; margin:auto; overflow: hidden; .logo max­width: 60px; display: block; float: left; margin: 0 0 1em 1em; .logo img display: block; .page­nav color: #fff; /*position: relative; visibility: inherit; transition:visibility .4s linear;*/ .page­nav ul, .page­nav li list­style:none; margin:0;

?

Page 7: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

12/2/2015 Diseñando un menú responsive con HTML5, CSS3 y jQuery.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=menuResponsive 6/7

Si cambiamos la resolución de nuestro navegador, vemos cómo la vista del menú cambia.

7. Conclusiones

Ya hemos visto cómo con CSS3 y jQuery podemos hacer un diseño responsive de nuestra web. Gracias a los nuevos recursoscomo transformaciones y media queries con muy poco código conseguimos un diseño adaptado y sin uso de librerías que

4142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136

padding: 0; .page­nav a color: #fff; width: 100%; height: auto; display: block; padding: 0.75em 1em; text­decoration: none; border­top:#666 1px solid; cursor: pointer; .toggle­nav float: right; padding: 1em; margin: 0 0 1em 1em; color: rgb(255,255,255); cursor: pointer; .menu­expanded height: 11em; /************************ MAIN CONTENTS************************/ .page­contents padding:0 1em; max­width: 650px; margin:auto; /************************ MEDIA QUERIES************************/@media only screen and (min­width:450px) .page­header span display: block; .page­nav clear:left; position: relative; visibility: inherit; transition:visibility .4s linear; @media only screen and (min­width:700px) .page­header height: 4em; .logo max­width: 92px; .page­nav width: auto; float: right; display: block; clear: none; visibility: visible; .page­header span display: none; .page­nav ul, .page­nav li float: left; .page­nav a border­top: none; @media only screen and (max­width:699px) .collapse visibility: hidden; @media only screen and (min­width:700px) .collapse visibility: inherit;

Page 8: F?:@'.$&2& %G&1'210*%A'*5% H&$02'$$%!5&102$%!,IJ · Fecha de publicación del tutorial: 20150212 Tutorial visitado 2 veces Descargar en PDF Cómo adaptar el menú de nuestra página

12/2/2015 Diseñando un menú responsive con HTML5, CSS3 y jQuery.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=menuResponsive 7/7

Esta obra está licenciada bajo licencia Creative Commons de Reconocimiento­No comercial­Sin obras derivadas 2.5

IMPULSA Impulsores Comunidad ¿Ayuda?

----sin clicks + + + + + + + +

0 personas han traído clicks a esta página

powered by karmacracy

Share | 0

» Registrate y accede a esta y otras ventajas «

Anímate y coméntanos lo que pienses sobre este TUTORIAL:

pueden afectar al rendimiento de nuestra web.

El tutorial completo podéis verlo en mi repositorio de GitHub

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Copyright 2003­2015 © All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto