CSS: Visualización

El lenguaje CSS permite tener un gran control sobre las cajas de los elementos HTML. A la posibilidad que ofrece para modificar su aspecto, como añadir rellenos, modificar los bordes y sus esquinas o colorear el fondo, hay que añadir el control de la visualización de las cajas, ya que es de gran utilidad.

En CSS existen varias propiedades para modificar la visualización de un elemento HTML, y cada propiedad tiene sus campos de uso.

Propiedades de visualización descritas en este artículo:

Propiedad Descripción
display Controla la forma de visualización de un elemento (bloque, línea, etc), e incluso se puede ocultar.
visibility Especifica la visibilidad de un elemento.
opacity Especifica la transparencia de un elemento.

Mediante estas propiedades es posible cambiar el tipo de elemento HTML (bloque, línea…), ocultarlo y/o hacer invisible toda su caja. Estas tres propiedades son de uso imprescindible en efectos avanzados y animaciones. Habitualmente se usan junto con JavaScript para crear diseños interactivos más complejos.

Cuando se trata de ocultar un elemento, las tres propiedades permiten esconderlo a ojos del usuario, pero tienen un comportamiento diferente. En el caso de display, desaparece la caja entera, como si no estuviera en el documento. En cambio, con la propiedad visibility la caja se vuelve invisible. Con opacity se puede indicar un nivel de transparencia sobre el elemento en cuestión.

Veamos un par de ejemplos con cuatro cajas numeradas.

.oculta1 {
  display: none;
}

.oculta2 {
  visibility: hidden;
}

.oculta3 {
  opacity: 0;
}

Ejemplo de ocultación con display: none:

1234

Ejemplo de ocultación con visibility: hidden:

1234

Ejemplo de ocultación con opacity: 0:

1234

Tal y como se puede ver, en el primer ejemplo la ausencia de la caja número 2 ha provocado el desplazamiento de las cajas 2 y 3, por lo que se ha modificado el flujo natural de los elementos. En el segundo ejemplo, la ausencia de la caja 2 ha dejado un hueco invisible; es como si fuera transparente. En cambio, en el último ejemplo, la caja 2 es realmente transparente en su totalidad.

La propiedad ‘display’

La propiedad display se utiliza para controlar la forma en la que se visualiza un elemento HTML. Con esta propiedad puede cambiarse el tipo de elemento: un elemento de bloque puede ser un elemento de línea, y viceversa. También se puede ocultar totalmente un elemento HTML, es decir, que desaparece de la página y provoca que el resto de elementos se reubiquen.

Por defecto, cada elemento HTML tiene un valor de visualización. De hecho, en HTML se clasifica los elementos en dos grupos: los elementos de bloque y los elementos de línea. Por ejemplo, los <div> son de bloque y sería redundante especificar la propiedad display con el valor block. Los <span> son de línea, por lo que es como si tuvieran el valor inline especificado.

Tabla de valores de la propiedad display:

Valor Descripción
block El elemento genera una caja de elemento de bloque, se apila en vertical y ocupa el ancho máximo posible.
inline Valor inicial. El elemento genera una o más cajas de elemento de línea, se colocan en horizontal. El ancho se ajusta a su contenido. Ignora las propiedades width y height.
inline-block Es una combinación de inline y block. El elemento se comporta como si fuera de línea (inline), pero ignora las propiedades width y height.
none El elemento desaparece por completo y provoca cambios en la posición de los elementos siguientes (si caben). Esta propiedad afecta a todo su contenido.
flex El elemento usa el modelo de cajas flexibles (flexbox) y se comporta como un elemento de bloque.
inline-flex El elemento usa el modelo de cajas flexibles (flexbox) y se comporta como un elemento de línea.
grid El elemento usa el modelo de cuadrículas o rejillas (grid) en bloque, también usado en diseño web responsive.
inline-grid El elemento usa el modelo de cuadrículas o rejillas (grid) de línea, por lo que la caja se adapta a su contenido.
list-item El elemento se comporta como si fuera un elemento de una lista, es decir, el del elemento <li>.
table El elemento se comporta como si fuera una tabla (elemento <table>). Es muy útil para tratar a sus elementos hijos como filas y celdas de una tabla.
inline-table El elemento se comporta como si fuera una tabla (elemento <table>) y, además, se comporta como un elemento de línea.
table-row El elemento se comporta como si fuera una fila de una tabla (elemento <tr>).
table-cell El elemento se comporta como si fuera una celda de datos de una tabla (elementos <th> y <td>).
table-caption El elemento se comporta como si fuera el título descriptivo de una tabla (elemento <caption>).
table-column El elemento se comporta como si fuera un elemento <col> para especificar propiedades de columnas.
table-column-group El elemento se comporta como si fuera un grupo de columnas de una tabla (elemento <colgroup>).
table-footer-group El elemento se comporta como si fuera el pie de una tabla (elemento <tfoot>).
table-header-group El elemento se comporta como si fuera la cabecera de una tabla (elemento <thead>).
table-row-group El elemento se comporta como si fuera el cuerpo de una tabla (elemento <tbody>).

La propiedad ‘visibility’

La propiedad visibility permite esconder o mostrar un elemento HTML. Cuando un elemento es ocultado mediante esta propiedad, el elemento sigue ocupando su espacio pero se vuelve totalmente invisible. También es habitual que se use esta propiedad junto con JavaScript para crear efectos.

Tabla de valores de la propiedad visibility:

Valor Descripción
visible Valor por defecto. El elemento es visible.
hidden El elemento pasa a ser invisible pero sigue ocupando su posición.
collapse Este valor se utiliza para esconder filas o columnas de una tabla.

Cuando se carga el documento HTML en el navegador, por defecto todos los elementos son visibles, excepto si se indica lo contrario.

La propiedad ‘opacity’

La propiedad opacity permite definir un grado de transparencia que se aplica sobre un elemento HTML, y puede aplicarse sobre cualquier tipo de objeto. Su valor será un número decimal en tanto por uno, es decir, que para aplicar una transparencia del 50% se indicará el valor 0.5.

En el siguiente ejemplo se han aplicado 5 grados de opacidad, partiendo del 20% hasta el 100%. Este es el código CSS:

.op20 {
  opacity: 0.20;
}

.op40 {
  opacity: 0.40;
}

.op60 {
  opacity: 0.60;
}

.op80 {
  opacity: 0.80;
}

.op100 {
  opacity: 1;
}

Resultado:

12345

Tal y como se puede observar, aparecen cinco cajas con un grado de opacidad que va incrementando desde una quinta parte hasta la totalidad. La transparencia permite que se visualice el fondo por debajo. Esta característica facilita la creación de bonitos efectos cuando se trabaja con imágenes.

← Artículo anterior
Artículo siguiente →