Estilos>>Técnicas

Centrando textos

Está claro que la utilización más inmediata del centrado es la de fragmentos de texto, creando reglas para que se aplique esta alineación a todos los elementos de un tipo, a una clase determinada o creando un estilo en línea para aplicarla a un único elemento en un momento puntual.

Ejemplos:

Este fragmento de titulo h5 está centrado porque lo hemos especificado en un estilo incrustado

<h5 style="text-align: center;">Este fragmento de titulo h5 est&aacute; centrado porque lo hemos especificado en un estilo incrustado</h5>

A este fragmento se le aplicó clase "centro" definida como estilo en línea en la cabecera del documento

<style type="text/css"> .centro { text-align: center;} </style>

...

<p class="centro">A este fragmento se le aplic&oacute; clase "centro" definida como estilo en l&iacute;nea en la cabecera del documento</p>

Centrando bloques o imágenes

En ocasiones lo que necesitamos centrar no es el texto, sino el bloque que lo contiene. La forma de hacerlo es establecer los márgenes izquierdo y derecho como "auto", de forma que el visor calcule el espacio sobrante y lo divida a partes iguales entre ambas zonas. Lógicamente, como lo habitual será que el bloque tenga suficiente contenido como para ocupar la totalidad de la anchura disponible, habrá que aplicar esta técnica a bloques con una anchura fija.

Soneto a una nariz (Francisco de Quevedo)
Érase un hombre a una nariz pegado,
érase una nariz superlativa,
érase una nariz sayón y escriba,
érase un peje espada muy barbado
era un reloj de sol mal encarado,
érase una alquitara pensativa,
érase un elefante boca arriba,
era Ovidio Nasón más narizado.
Érase el espolón de una galera,
érase una pirámide de Egipto,
las doce tribus de narices era;
érase un naricismo infinito,
muchísimo nariz, nariz tan fiera
que en la cara de Anás fuera delito.
Para mostrar el poema hemos creado una clase para el estilo interno de la cabecera que luego le aplicamos al contenedor genérico en el que hemos encerrado el soneto.

.poema { padding: 0.5em 1em 1em;
width: 25em;
margin-left: auto;
margin-right: auto;
background-color: rgb(236, 225, 187);
}

Aunque habrás visto el bloque del soneto centrado, tanto con Internet Explorer como con Mozlla, Firefox u Ópera, ha sido porque todas las páginas de este manual llevan aplicado un parche genérico que corrige la mayoría de los errores de interpretación de CSS2 que tiene Internet Explorer.

Si no queremos aplicar el parche completo tendríamos que aplicar la solución provisional que consiste en encerrar el bloque que deseamos centrar dentro de otro contenedor genérico al que le aplicamos una regla de estilo para que alinee el texto centrado: con ello se consigue que el bloque se sitúe en el centro. Puedes ver el mismo ejemplo adaptado y revisar el código para comprobar lo que estamos comentando.

Aprovechando la idea del centrado de bloques podemos aplicarla también para centrar imágenes, aunque en este caso hay que tener en cuenta una matización: las imágenes son elementos "en línea" y como tales no generan un salto anterior y posterior. Ya hemos visto en otros momentos que podemos considerarlas como una "letra" más dentro de la cadena de caracteres que componen un texto. Eso quiere decir que, para poder hacer que se centren tenemos que convertirlas en elementos de tipo "bloque".

En este caso no necesitamos hacer ninguna maniobra especial para que se sitúen correctamente en Internet Explorer.  

La siguiente imagen salta y se centra automáticamente aunque está incluida en la página inmediatamete después del punto con el que finaliza esta frase.

El código que hemos utilizado se ha limitado a crear una clase con las condiciones que habíamos reseñado previamente y aplicarla luego a la etiqueta img.

.imagenbloque { display: block;
margin-left: auto;
margin-right: auto;
}
Importante: si intentas aplicar la técnica anterior en un documento HTML creado por N|VU sin corregir el error que introduce en la generación de los prólogos pasarás un mal rato copiando y pegando códigos y viendo que Internet Explorer no te hace ni caso. Es uno de los ejemplos de funcionamiento errático de un navegador cuando el código es incorrecto. Puedes consultar el error y localizar las plantillas que lo solucionan.

Centrar verticalmente

No disponemos en CSS2 de una propiedad para centrar verticalmente pero, a pesar de ello, podemos combinar algunas propiedades existentes para lograrlo.

La idea en la que nos vamos a basar es que el contenido de las celdas de las tablas sí que admite el centrado vertical. Aprovechando esta particularidad crearemos un contenedor externo que se muestre como si fuera una tabla de celda y le aplicaremos el centrado vertical.

este es el texto que se debería centrar en  vertical 

El ejemplo que se muestra en la zona izquierda, a pesar de ser una aplicación de una sugerencia propuesta desde el W3C, sólo se reproduce correctamente cuando la página se visualiza con navegadores basados en el motor Gecko (Mozilla, Firefox, Galeón, Safari, etc) pero no se respetan las propiedades si se visualiza con Internet Explorer u Opera.

Las propiedades que se han utilizado para construir la clase "centrarvertical" son las siguientes:
.centrarvertical { border: 1px solid rgb(153, 102, 51);
min-height: 100px;
width: 400px;
display: table-cell;
vertical-align: middle;
float: left;
margin-right: 1em;
color: rgb(255, 255, 204);
background-color: rgb(192, 192, 192);
font-size: x-large;
font-weight: bold;
}