Por lo general, utilizamos la propiedad display con dos valores: block o inline.
Lo hacemos para invertir esa propiedad por defecto es decir, hacer que un elemento inline sea un bloque o que un elemento de bloque sea inline. El primer caso es el típico de las imagenes centradas donde establecemos que la etiqueta IMG sea de tipo block. El segundo, lo usamos muchas veces para los menús agregando el valor inline a la etiqueta LI para que se vean una al lado de la otra.
Pero, esos no son los únicos valores que acepta la propiedad display y en particular, hay algunos relativamente nuevos que son muy interesantes y que vale al pena tener en cuenta ya que son aceptados por todos los navegadores incluyendo IE8.
Supongamos que tenemos dos DIVs a los que dimensionamos y le ponemos algún tipo de contenido:
<style>
div.ejemplo {
height: 100px;
margin: 5px;
padding: 0 10px;
text-align: center;
vertical-align: middle;
width: 250px;
}
</style>
<div class="ejemplo"> ....... </div>
<div class="ejemplo"> ....... </div>Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Si estableciéramos la propiedad display con el valor inline, lo que veríamos sería algo bastante confuso:
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
<div class="ejemplo" style="display:inline-block;"> ....... </div> <div class="ejemplo" style="display:inline-block;"> ....... </div>
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Hasta acá, en todos los casos, el contenido permanecía alineado verticalmente arriba, la propiedad vertical-align que se utilza para centrar verticalmente no tiene afecto pero, hay un par de valores más que podemos usar para resolver el famoso tema de alinear cosas. Se trata de los valores table y table-cell que lo que hacen es ... algo parecido a una tabla.
<div class="ejemplo" style="display:table-cell;"> ....... </div> <div class="ejemplo" style="display:table-cell;"> ....... </div>
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Para centrar esto y separar los DIVs, debemos usar un contenedor:
<style>
div.contenedortablecell {
border-spacing: 5px 0;
display: table;
height: 200px;
margin: 0 auto;
width: 400px;
}
div.tablecell {
display: table-cell;
padding: 0 10px;
text-align: center;
vertical-align: middle;
}
</style>
<div class="contenedortablecell">
<div class="tablecell"> ....... </div>
<div class="tablecell"> ....... </div>
<div class="tablecell"> ....... </div>
<div class="tablecell"> ....... </div>
</div>Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
Integer convallis erat mattis.
Integer convallis.
Integer convallis erat mattis arcu vehicula et fermentum mi cursus.
En el estilo, la separación se define con al propiedad border-spacing que es al que establece el espacio entre celdas donde el primer valor indica el espacio horizontal y el segundo el vertical. Sobre esto hay que tener en cuenta que en muchas páginas se dice que además debe agregarse otra: border-collapse: collapse; pero es errçoneo, en realidad, debe hacerse lo contrario que es poner border-collapse: separate; o nada ya que esa es la propiedad por defecto.
Así parece, así dicen, así anuncian en 














