Definición | Establece la altura mínima de los elementos de bloque |
---|---|
Valores permitidos | Uno y sólo uno de los siguientes valores: |
Si se utilizan porcentajes, hace referencia a la altura del elemento en el que se encuentra | |
Valor inicial | 0 |
Se aplica a | Todos los elementos, salvo los elementos en línea que no sean imágenes, las filas de tabla y los grupos de filas de tabla. |
Válida en | medios visuales |
Se hereda | no |
Definición en el estándar | w3.org/TR/CSS21/visudet.html#propdef-min-height |
Ejemplos de uso
Normalmente, la altura de los elementos se establece de forma explícita mediante la propiedad height o se deja al navegador que calcule automáticamente la altura necesaria de modo que quepan los contenidos en el interior de cada elemento.
La propiedad min-height
presenta un comportamiento intermedio. En primer lugar, el navegador calcula la altura necesaria para mostrar los contenidos. Si la altura necesaria es mayor que la altura mínima, el elemento se muestra con esa altura necesaria.
Si la altura necesaria para mostrar los contenidos es inferior a la altura mínima, se fuerza a que la altura del elemento sea igual que la altura mínima.
En el siguiente ejemplo, el segundo <div>
tiene una altura mínima de min-height: 150px
, por lo que el navegador lo muestra con esa altura a pesar de que sus contenidos no ocupan tanto sitio:
El navegador Internet Explorer 6 no incluye esta propiedad, por lo que se debe utilizar un truco que hace uso de CSS y JavaScript para simular el comportamiento de la propiedad min-height
:
#contenedor {
min-height: 300px;
overflow: hidden;
height: expression(this.scrollHeight < 301? "300px": "auto");
}
El ejemplo anterior hace uso de una función llamada expression()
que sólo funciona en los navegadores de tipo Internet Explorer (desde su versión 5). Esta función permite establecer una medida utilizando expresiones matemáticas o mediante código JavaScript.
En este caso, se utiliza JavaScript para establecer de forma dinámica la altura del elemento #contenedor
. Si la altura de este elemento (obtenida mediante this.scrollHeight
) es menor que 301px
, se establece su altura a 300px
. En cualquier otro caso, se deja que el navegador calcule automáticamente la altura necesaria mediante el valor auto
.
El principal inconveniente de utilizar la función expression()
es que el código CSS resultante no es válido según el estándar oficial y por tanto, no supera satisfatoriamente el proceso de validación de herramientas como el validador de CSS del W3C
Por otra parte, establecer medidas mediante operaciones matemáticas puede resultar muy útil para tener un control preciso cuando se utilizan unidades como em
y porcentajes. Por este motivo, la futura versión CSS 3 incluirá una función llamada calc()
cuyo funcionamiento es idéntico a expression()
.
El siguiente ejemplo muestra el uso de calc()
para establecer la anchura de un elemento mediante una operación matemática compleja:
#contenedor {
float: left;
margin: 1em; border: solid 1px;
width: calc(100%/3 - 2*1em - 2*1px);
}
La anchura del elemento #contenedor
anterior se establece a una tercera parte del sitio disponible (100%/3
) y después se le resta el sitio que ocupan los dos márgenes laterales de 1em
de anchura cada uno (2*1em
) y el espacio ocupado por los dos bordes laterales de 1px
de anchura cada uno (2*1px
).