CSS Responsive Design

responsive grid

Hoy, en [forCode], os enseñaremos un ejemplo de Responsive Design. Veremos como actúa una página web según el tamaño de nuestro navegador y como trabajar con distintas CSS en función de ello.

Bueno pues pongámonos manos a la obra:

Primero de todo, crearemos una página en blanco de html.

<!DOCTYPE html> 

<html>
	<head>

	</head>

	<body>

	</body>
</html>

Una vez tengamos lo anterior, entre los tags <head> y </head>, añadiremos las siguientes líneas:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Con este tag, ajusta automáticamente el ancho de la página y le indica que no tiene que hacer zoom inicialmente.

Siguiendo dentro de los tag <head> y </head>, añadiremos las siguientes líneas para que nuestra página web ponga el estilo que queremos:

<!-- Estilo Normal -->

<link rel="stylesheet" href="base.css">

<!-- Responsive -->

<link rel="stylesheet" href="responsive.css">

Ahora crearemos y analizaremos las hojas de estilo, vamos a ello!:

Crearemos un fichero .CSS, que lo llamaremos «base.css» (inspirado en el estilo: http://www.csslab.cl/2007/01/12/centrado-vertical-con-css/):

/*
Estilo del box que contiene la información */

html, body {
	margin: 0;
	height: 100%;
	}

body {
	font: 100% Arial;
	color: black;
	}

h1 {
	color: #1990D5;
	}

#wrap {
	display: table;
	height: 100%;
	}

#caja {
	display: table-cell;
	vertical-align: middle;
	}

#contenido {
	padding: 20px;
	}

p, #pc, #tablet, #movilPaisado, #movilNormal{
	font-size: 17px;
	line-height: 150%;
}

Seguidamente, haremos lo mismo que el anterior pero lo llamaremos «responsive.css»:

/* 
Ocultamos la parte que queramos 
para que no se muestre desde un principio, 
en este caso nuestra información */

#pc, #tablet, #movilPaisado, #movilNormal{
	display: none;
}

/* 
Mostramos la información,
en este caso nuestros divs que contienen un texto
SOLO cuando la pantalla tenga un cierto ancho

A continuación os pongo una lista de las mas comunes:*/

/* 
PC */
@media screen and (min-width: 960px) {
	#pc{
		display: block;
	}		
}

/* 
Tablets */
@media screen and (min-width: 768px) and (max-width: 959px) {
	#tablet{
		display: block;
	}		
}

/* 
Tablets */
@media screen and (min-width: 480px) and (max-width: 767px) {
	#movilPaisado{
		display: block;
	}			
}

/* 
Tablets */
@media screen and (min-width: 0px) and (max-width: 479px) {
	#movilNormal{
		display: block;
	}			
}

Bien, ahora que ya tenemos nuestras hojas de estilos enlazadas a nuestra página HTML, vamos a construir el body de dicha página HTML, dentro de los tags <body> y </body> añadiremos el siguiente código:

<div id="wrap">
			<div id="caja">
				<div id="contenido">
					<h1>Ajusta la ventana para ver el tipo de resolución que quieras</h1>
						<div id="pc">
							Hola! soy un width para PC min 960px
						</div>
						<div id="tablet">
							Hola! soy un width para tablets de 768-959px
						</div>
						<div id="movilPaisado">
							Hola! soy un width para moviles Paisados de 480-767px
						</div>
						<div id="movilNormal">
							Hola! soy un width para moviles de 0-479px
						</div>
				</div>
			</div>
		</div>

Si todo ha salido bien, deberíais tener algo semejante a esto (de no ser así, repasad no os hayáis equivocado en algún paso):

CSS Responsive

 

Ahora solo tenéis que cambiar el tamaño de vuestro navegador para ver como actúa esta página HTML con Responsive Design. Por si no os sale y se os ha agotado la paciencia  aquí os dejo un enlace de descarga del código. Un saludo y hasta la próxima!

Descargar Ejemplo CSS Responsive