Cuando empecé a entender y a manejar esto del CSS pensaba que estaba muy bien y que molaba mucho para cambiar los colorines de los enlaces y que se subrayaran y cosas así, pero no le veía mucha más aplicación. No digamos ya cuando se trataba de centrar un diseño en la página, por favor… eso se hace con tablas!!!. Pues no amigos, con CSS se puede, y además es más lógico, tiene más sentido y el diseño es más limpio.
Para empezar, ¿que entendemos por un diseño centrado?, pues aquel diseño web que permanece centrado verticalmente en el navegador que utilicemos (en cualquier navegador: Firefox, IE, Opera… como el ejemplo de la imagen de la izquierda) sea cual sea la resolución de nuestra pantalla. Así de sencillo y de dificil a la vez. Si nosotros no indicamos al diseño web via CSS que esté centrado, por defecto, el diseño se centrara a la izquierda y en la esquina superior, en el mismo orden en el que escribimos, por ejemplo. Así que una vez que esto es claro y meridiano, que diría alguno, pasemos a explicar como se hace.
En primer lugar creamos el documento HTML de nuestro proyecto, la página principal, y la llamamos como queramos, por ejemplo, layout01.html. Lo siguiente que debemos hacer es vincular ese archivo html a una hoja de estilos css que llamaremos, por ejemplo, layout01.css.
Antes de continuar insisto siempre en que es fundamental que visualicemos el resultado que pretendemos conseguir antes de ponernos a hacerlo. Un recurso muy antiguo y muy util es dibujar como queremos que sea nuestra web, ya que en el mismo dibujo podemos hacer anotaciones. Creedme amigos, es muy pero que muy util aunque sea más viejo esto de dibujar que hacer pis en el campo.
Con la idea clara, hagamos la estructura. En este caso yo voy a hacer un diseño con una cabecera y un cuerpo central, así de sencillo. Luego ya cada uno puede ir agregando cosas. En primer lugar voy a crear un estilo tipo ID (los que llevan #, no como los class, que llevan un .) de DIV que englobe todo el ancho de la página. Es bueno tener metodología en esto y utilizar siempre el mismo tipo de estructuras. Yo lo voy a llamar “wrapper” y es así:
#wrapper {
width: 100%;
text-align: center;
margin-top: 10px;
}
Este ID de CSS dice que el ancho es del 100% de la página, que el texto esta centrado y que el margen superior es de 10px. Al margen podria ponerle otros valores o no ponerle ninguno. Ahora, en mi documento html inserto este DIV de la siguiente manera:
<div id=”wrapper”>
</div>
Lógicamente si publico la página en un navegador no veré nada todavía, porque lo que hemos creado, este “wrapper” es el envoltorio que va a contener al resto de la estructura para que aparezca centrada. Lo siguiente es crear el ID del DIV que va a tener todo el contenido dentro. Este DIV estará dentro del “wrapper” y por eso estará siempre centrado. Llamo a este DIV “container”, y es así:
#container {
width: 750px;
margin-left:auto;
margin-right:auto;
}
Simplemente le he indicado el ancho total que va a tener el sitio web (750 px en este caso) y también le he indicado que los márgenes izquierdo y derecho tengan una medida “auto”. Esto hace que el DIV container se mantenga siempre centrado dentro del “wrapper”, tal y como indica el estilo del “wrapper” al utilizar un text-align: center. Ahora inserto este DIV dentro del “wrapper” tal que así:
<div id=”wrapper”>
<div id=”container”>
</div>
</div>
Sigo sin ver nada si lo publico en un navegador, y es normal, porque no hay ningún contenido sino simplemente una estructura para albergar el contenido, que es justo lo que hemos hecho. A partir de ahora, lo que nos aseguramos es que el DIV “container” esté centrado de forma absoluta. Voy a hacer dos estilos ID más, uno que llamare “header” y que definira la cabecera y otro que llamare “content” que definira el contenido principal, y quedaran así:
#header {
width: 100%;
background-color:#FFFFFF;
height: 150px;
margin-bottom: 10px;
}
#content {
width: 100%;
background-color:#FFFFFF;
height: 400px;
}
Que quede claro que lo mismo que yo les doy estos valores de tamaño y de background, luego cada uno tiene que jugar en función de lo que quiera obtener. Una vez definidos estos IDs los incluyo en mi documento html dentro del DIV “container”:
<div id=”wrapper”>
<div id=”container”>
<div id=”header”>Colocar aquí el contenido para id “header”</div>
<div id=”content”>Colocar aquí el contenido para id “content”</div>
</div>
</div>
![]()
Y tachán, ya está (pulsa la miniatura de la derecha para ver como queda el resultado en Internet Explorer). Para que se vea el contraste ya que no voy a poner nada de contenido, en la CSS pongo en el estilo body que haya un background-color: #000000; para que se vea el fondo negro y los DIVs que he insertado en blanco. Resumiendo, lo que he hecho ha sido indicar via CSS a una serie de DIVs que deben tener el contenido centrado de forma absoluta. La hoja CSS layout01.css ha quedado así hecha:
body {
background-color: #003366;
}
#wrapper {
width: 100%;
text-align: center;
margin-top: 10px;
}
#container {
width: 750px;
margin-left:auto;
margin-right:auto;
}
#header {
width: 100%;
background-color:#FFFFFF;
height: 150px;
margin-bottom: 10px;
}
#content {
width: 100%;
background-color:#FFFFFF;
height: 400px;
}
Y el archivo HTML para conseguir este increible y fascinante resultado que os cambiará la vida es así:
<head>
<title>ricardotayar.wordpress.com</title>
<link href=”layout01.css” rel=”stylesheet” type=”text/css” />
</head>
<body>
<div id=”wrapper”>
<div id=”container”>
<div id=”header”>Colocar aquí el contenido para id “header”</div>
<div id=”content”>Colocar aquí el contenido para id “content”</div>
</div>
</div>
</body>
</html>
Ala mozos, ahora a practicar cada uno en su casa estas cosicas, que poco a poco se pueden conseguir resultados muy interesantes. Ahora, ya sabeis como centrar un diseño web utilizando CSS, así que lo siguiente es experimentar y ampliar esta minilección por cuenta propia e ir dándole contenido al contenedor web principal… suerte!!!

25 comments
Comments feed for this article
18, Noviembre 2007 a 12:59 pm
Brisbane web site design
this is something really tough , can i get this in english plz ?
18, Noviembre 2007 a 7:36 pm
ricardotayar
I´d like to help you, but you must understand that I cannot translate every content of this blog to several languages depending who reads it, but you can use translate tools like babelfish to translate de whole content so this will be useful for you, ok?
22, Noviembre 2007 a 5:24 pm
eric
Saludo:
A ver si me puedes ayudar. Resulta que yo soy un completo inexperto y quiero subir, básicamente, videos Quicktime a mi blog en wordpress. He investigado y para conseguirlo, me parece que necesito subir un plugin (pero no encuentro donde hacerlo) más explícitamente el Embed (de apple) y luego pegar un tag en el espacio de Redactar, hasta aquí voy bien??
El tema es que como dije, no tengo la menor idea de dónde subir ese plugin Embed. Lo que intuyo es que necesito hacer un upgrade a CSS para poder modificar eso, o me equivoco y estoy haciendo algo mal??
Te agradecería me pudieras dar alguna orientación al respecto???
Mil gracias!
25, Noviembre 2007 a 5:42 pm
ricardotayar
Hola Eric:
Te voy a ser sincero, desconozco totalmente lo que preguntas. La verdad es que no puedo ayudarte, aunque por curiosidad le he preguntado sobre el tema a un par de colegas por mail, y si me dicen algo te cuento. Siento no poder ayudarte.
16, Diciembre 2007 a 9:13 pm
cricrii!
muy buen aportee
gracias!
14, Enero 2008 a 1:09 pm
Javier
Muy bueno el mini tuto, ahora pregunto ¿y alineacion vertical? supongamos un swf comlpetamente centrado en nuestra web?
Muchas gracias por dedicar tiempo a estas cosas!
Saludos!!
20, Enero 2008 a 1:59 am
Marco Valle
hola cómo estas, me imagino que te llamas Ricardo, un placer te saludo desde Honduras….me parece muy, pero muy interesante tu sitio y tu tutorial….me has sacado de muchas dudas soy nuevo en esto pero estoy en el procedeo de aprender……..pero tengo otras dudas..te las planteo ahora y veremos si me ayudas…..yo he trabajado con dreamweaver y uso plantillas me parece práctico al crear un nuevo archivo le aplico la platilla y listo…pero mi consulta es ¿cómo puedo hacer lo mismo o algo parecido con css….¿si tengo un sitio con muchas páginas?¿hago un html y le aplico el css y lo convieto en plantilla? o a cada htm nuevo que creo lo hagi en base a los mismos divs y luego le aplico las clases o los id el css a cada una?…..no se si se comprende mi pregunta?
muchas gracias
6, Marzo 2008 a 11:51 pm
Dark
Llámame torpe, pero hago paso por paso lo que dices y no me sale nada, sólo el texto:
Colocar aquí el contenido para id “header”
Colocar aquí el contenido para id “content”
en la parte superior izquierda de la página
Un saludo y aunque uno es torpe siempre es recibido que expliquen estas cosas de un forma tan sencilla.
10, Marzo 2008 a 5:05 pm
diego camisetas
Hola machote!, que buen aporte! no en serio, yo consigo esto de centrar guarramente, ya te lo enseñare un día que pases por aquí a encargarme otra camiseta risionil.
12, Marzo 2008 a 9:11 am
Valentín
Me pasa igual que a Dark…
17, Marzo 2008 a 2:25 pm
ricardotayar
Comento por partes:
Para Dark: el texto que te sale es ese porque es el que puse en el ejemplo es ese a modo de orientación, en lugar de Colocar aquí el contenido para id “header” tienes que colocar entre esas etiquetas el contenido que a ti te parezca, lo que tú quieres poner, sea la cantidad de divs, que sean.
Para Valentín: lo mismo te comento
Espero haberos ayudado
28, Marzo 2008 a 7:21 pm
Diseñar fondos de página (backgrounds) y utilizarlos con CSS « Historias de posicionamiento, diseño web y hard rock
[...] arriba. Para mostraros el resultado voy a emplear el mismo ejemplo de web que utilicé en el post Hacer un diseño web centrado con CSS, ¿cómo se hace? e iremos viendo como varía su diseño según el fondo que le [...]
24, Abril 2008 a 2:47 pm
Gino
Muchísimas gracias por la Información, perfectamente explicado.
2, Junio 2008 a 7:37 am
stella
Genial! Me ha resultado muy útil, muchas gracias.
1, Noviembre 2008 a 2:33 am
conquisatdor
Resulta que tienes que cambiar las comillas dobles ya que el navegador las pone de una forma y el dreamweaver las ve de otra “header” “”
11, Noviembre 2008 a 6:56 pm
ReneRueda
Excelente, a mi también no me salia hasta que corregí lo de las comillas. GRACIAS.
9, Enero 2009 a 1:47 pm
daniel
Me pasa lo mismo que Darko y Valentin.
Copie y pegue el codigo html y css en layout01.html y layout01.css respectivamente y cuando visualizo la pagina; es como si no tuviera css.
No es un problema del contenido.
saludos y gracias
Daniel
9, Enero 2009 a 2:03 pm
daniel
Disculpa Ricardo, ya se lo que paso, al cortar y pegar quedaron caracteres raros delante y al final del nombre de los div y por esa razon no los ubicaba.
Corregido esto funciona perfectamente.
25, Enero 2009 a 11:39 pm
Samde Sar
Chevere compadre, eso si es pedagojia : ) xD
26, Febrero 2009 a 2:20 pm
Karakarton
Hola ricardo enhorabuena por la web y por tus explicaciones pero tengo una duda que no consigo hacer. he hecho tu tutorial pero mi problema es que necesito tener una capa a la izquierda que sera el menu, otro a la derecha donde ira el menu y 1 para el contenido, el problema es que no consigo hacerlo y me esta quitando la vida por mas pruebas que hago, ¿podrias orientarme? muchas gracias
26, Febrero 2009 a 5:06 pm
ricardotayar
Hola Karakarton, dejame que lo mire un segundo y te comento lo que puedes hacer, aunque puedes leer el post que habla de los Yahoo YUI Grids y utilizar ese sistema para lo que quieres hacer, pero dame un rato y te comento, ¿ok?
26, Febrero 2009 a 9:34 pm
Karakarton
Gracias Ricardo, solucionado, y espero que valga a mas gente simplemete este codigo:
contenido izquiero
contenidoright
Poniendolo debajo de de:
Pero cuando todo estaba solucionado me viene el toston de modzilla se va un poco hacia la derecha y “content” se me sube hacia arriba a”header”. En fin si lo soluciono entro y os lo digo, si alguien lo sabe k tambien lo diga. Un saludo
26, Febrero 2009 a 9:36 pm
Karakarton
perdon por el poner otro post pero no salio el codigo lo intento de nuevo con espacios:
“contenido iz”
“contenido der”
29, Marzo 2009 a 11:32 pm
Alfchiva
Hola Ricardo esta excelente el tutorial pero tambien tengo problemas con las capas estas se mueven de manera independiente como controlarlas…saludos
4, Mayo 2009 a 11:15 pm
kike
Muy bueno, y muy claro, Ricardo. Ahora, tengo un problema. En el header va una imagen, y a continuación el menú de navegación. Y éste, si bien me queda a continuación se me va muy abajo. Cómo hago para que me quede un poco más arriba? Cómo puedo darle margen inferior al texto sin que esto me afecte la posición de la imagen?