Ir al contenido principal

Adaptar página web al movil con media queries.

    Con el uso de media queries de CSS3 podemos adaptar de forma sencilla nuestra página para que esta se vea correctamente en un móvil o en una tablet. Este ejemplo que os comento sólo lo aconsejo para aplicarlo a páginas sencillas. Para páginas más elaboradas es mejor crear CSS específicos y realizar un redireccionamiento al CSS que queramos cargar dependiendo del dispositivo que se esté usando. En este caso, continuando con la página Las Edades de la Tierra, vamos a introducir, dentro del mismo CSS, unas reglas media query, las cuales se ejecutarán, dependiendo del tipo de pantalla con la que estemos  visualizando la página. Antes de nada quiero hacer hincapié en que, para hacer una página adaptable, es conveniente que, siempre que sea posible, uséis porcentajes en las medidas. (Ver 'Consejos crear web' y 'Imagen adaptable todas resoluciones' ).

   Bien, para hacer esto, basta con añadir un código como el siguiente al final de nuestro CSS:


@media screen and (max-width: 320px) {
#cabecera {
    clear: left;
    float: left;
    height: 50px;
    overflow: visible;
    position: relative;
}

#imgback {
position: fixed;
z-index: -1;
top: 90px;
left: 0;
width: 100%;
}
.menu{
border-color: #00FF99 #00FF99 #00FF99;
border-image: none;
border-radius: 0 15px 15px 0;
border-style: solid solid solid none;
border-width: 1px 1px 1px 0;
box-shadow: 0 0 5px black;
width:90%;
clear: left;
color: #0FF;
margin: 0 0 30px;
overflow: hidden;
padding: 4px 15px 20px 0;
position: relative;
z-index:100;
}
.menuuno {
background-image: none;
background-color: rgba(0, 0, 0, 0.6);
}
.menudos {
background-image:none;
background-color: rgba(0, 0, 0, 0.6);
}
#enlaces {
display:none;
}
#abrecierracanvas {
display:none;
}
#notas {
display:none;
}
#migrafico {
display:none;
}
}

@media screen and (max-width :480px) and (min-width: 321px) {
html { 
font-size: 90%;
background-color:#000;
-webkit-text-size-adjust: 90%; 
-ms-text-size-adjust: 90%; 
}
body {
margin:0 auto;
font-family:"Times New Roman", Times, serif;
font-size:90%;
width:98%;
}
#cabecera {
    clear: left;
    float: left;
    height: 50px;
    overflow: visible;
    position: relative;
}

#imgback {
position: fixed;
z-index: -1;
top: 90px;
left: 0;
width: 100%;
}
.menu{
border-color: #00FF99 #00FF99 #00FF99;
border-image: none;
border-radius: 0 15px 15px 0;
border-style: solid solid solid none;
border-width: 1px 1px 1px 0;
box-shadow: -5px 10px 10px black;
width:45%;
clear: left;
color: #0FF;
margin: 0 0 30px;
overflow: hidden;
padding: 4px 15px 20px 0;
position: relative;
z-index:100;
}
.menuuno {
background-image:none;
background-color: rgba(0, 0, 0, 0.6);
}
.menudos {
background-image:none;
background-color: rgba(0, 0, 0, 0.6);
}
#abrecierracanvas {
display:none;
}

#notas {
display:none;
}
#migrafico {
display:none;
}
}


Lo primero, decir que sólo es necesario incluir aquellas reglas que necesiten una modificación para que se adapten a ese tipo de pantalla. Lo segundo, en este ejemplo, estamos adaptando la página web a una pantalla de móvil tipo Iphone 3 o Samsung Galaxy SII. En la primera parte ("@media screen and (max-width: 320px)"), definimos las reglas para una pantalla que tenga como máximo una anchura de 320px. Y, en la segunda parte ("@media screen and (max-width :480px) and (min-width: 321px)") definimos las reglas para una pantalla con un máximo de anchura de 480px y un mínimo de anchura de 321px. Con esto conseguimos definir reglas para el móvil tanto si está en vertical como en horizontal. Ver más sobre las media query en 'Uso de media queries' y, con solo escribir en el buscador: CSS3 media query, tendréis infinidad de consultas sobre su uso.

Comentarios

Entradas populares de este blog

Leer un archivo XML con jQuery y javascript y modificar un HTML con su contenido

   Una manera muy interesante y fácil de modificar los textos de tu página web. Si, por ejemplo, tenemos una página donde cambiamos a menudo unas noticias que tenemos en el margen derecho, podríamos tener un código HTML como este:    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Manejar archivo XML</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="leerxml.js"></script> <link rel="stylesheet" href="estilos.css"> </head> <body> <h1>Titulo de la página</h1> <div id="derecha"> <div class="noticias"> <div class="prim

Recargar div con efecto de aparición suave (Fade In) en jQuery

  En este post continúo con el código que describí en el segundo post sobre cómo refrescar un div sin necesidad de refrescar toda la página, pero añadiéndole unas lineas para este se aparezca de forma suave. La página de ejemplo es http://www.talleresguadamia.com y el código es el que sigue: <script type="text/javascript"> $(document).ready(function(){    $("#contenido a").each(function(){       var href = $(this).attr("href");       $(this).attr({ href: "#"});       $(this).click(function(event){                  $("#contenido").css("display","none");          $("#contenido").load(href).fadeIn(700);        });    }); });; </script>   Podéis ver lo fácil que es. Hemos agregado sólo dos cosas:   - La linea  "$('#contenido').css('display','none')", que lo único que hace es cambiar la propiedad css "display" del div "#contenido&q

Código jQuery para ver una imagen al pasar el ratón sobre un enlace.

   Voy a explicar un código en jQuery , para que, al pasar el puntero del mouse sobre un enlace o, en este caso, sobre un texto cualquiera (sin necesidad de ser un enlace), se nos muestre una imagen cerca del enlace y que esta desaparezca al retirar el puntero del mouse (sin necesidad de hacer click sobre él). Podéis pensar que me estoy repitiendo con un anterior post. Casi que si. Pero la diferencia es que, en este caso, no sabemos donde estará situada la imagen. Es decir que, dependiendo de la situación de la pantalla donde esté el enlace o texto, allí se mostrará la imagen.    Vamos al grano. Primero el código en HTML:       <span class="enlace" title="hyneria.png">Hyneria</span>    Podéis ver que, en este caso, no se trata de un enlace. Le pongo el nombre de 'enlace' a la clase porque en el CSS le doy apariencia de enlace. Aquí lo importante es 'title' el cual contiene el nombre de la imagen que queremos mostrar (pod