Modos de Visualización (display)
Aprende cómo los elementos ocupan espacio en el flujo del documento con display: block, inline, inline-block, y las diferencias cruciales entre display: none y visibility: hidden.
La Propiedad display
La propiedad display es la instrucción más importante para determinar el comportamiento estructural de un elemento dentro del flujo normal de renderizado de una página HTML.
| Valor | Comportamiento en Línea | ¿Admite width / height? | ¿Admite margin vertical? | Ejemplos Nativos |
|---|---|---|---|---|
block |
Ocupa todo el ancho disponible (salto de línea antes y después). | Sí | Sí | <div>, <p>, <h1>, <section> |
inline |
Fluye junto al texto. Solo ocupa el ancho de su contenido. | No | No | <span>, <a>, <strong>, <em> |
inline-block |
Fluye en línea con otros elementos, pero respeta dimensiones y márgenes. | Sí | Sí | <button>, <input>, <img> |
Cómo Ocultar Elementos: ¿display: none o visibility: hidden?
Existen dos formas fundamentales de hacer invisible un elemento en la pantalla, con un impacto radicalmente diferente en el layout:
display: none: Elimina el elemento del flujo visual por completo. Como si no existiera en el renderizado; los elementos contiguos ocupan su lugar.visibility: hidden: Hace invisible el elemento, pero reserva su espacio intacto en blanco dentro de la página.opacity: 0: Vuelve el elemento transparente, pero sigue ocupando espacio y sigue respondiendo a eventos de clic o puntero a menos que usespointer-events: none.
⚡ Comparativa de Modos de Visualización y Ocultación
Observa cómo los elementos inline-block forman una barra horizontal respetando altos y anchos, y compara la ocultación entre display y visibility:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Propiedad Display en CSS</title>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
background-color: #f8fafc;
padding: 25px;
color: #0f172a;
}
/* Elementos en bloque */
.caja-bloque {
display: block;
background-color: #dbeafe;
border: 1px solid #93c5fd;
color: #1e40af;
padding: 10px;
margin-bottom: 8px;
border-radius: 6px;
}
/* Elementos inline-block */
.caja-inline-block {
display: inline-block;
width: 140px;
height: 70px;
background-color: #fef3c7;
border: 1px solid #fcd34d;
color: #92400e;
padding: 10px;
margin-right: 10px;
border-radius: 6px;
vertical-align: top;
text-align: center;
font-weight: bold;
}
/* Botón para alternar visibilidad */
.btn-control {
background: #0284c7;
color: white;
border: none;
padding: 8px 16px;
border-radius: 6px;
cursor: pointer;
font-weight: 600;
margin-bottom: 12px;
}
</style>
</head>
<body>
<h3>1. Elementos en Bloque (display: block)</h3>
<div class="caja-bloque">Bloque A: Ocupa todo el ancho horizontal disponible</div>
<div class="caja-bloque">Bloque B: Automáticamente salta a la siguiente línea</div>
<h3>2. Elementos en Línea-Bloque (display: inline-block)</h3>
<div>
<div class="caja-inline-block">Caja 1 (140x70px)</div>
<div class="caja-inline-block">Caja 2 (140x70px)</div>
<div id="cajaOcultable" class="caja-inline-block" style="background: #fee2e2; border-color: #fca5a5; color: #991b1b;">
Caja 3 (Ocultable)
</div>
</div>
<div style="margin-top: 20px;">
<button class="btn-control" onclick="alternarDisplay()">
Alternar con display: none
</button>
<button class="btn-control" style="background: #475569;" onclick="alternarVisibility()">
Alternar con visibility: hidden
</button>
</div>
<script>
const caja = document.getElementById('cajaOcultable');
function alternarDisplay() {
caja.style.visibility = 'visible';
caja.style.display = (caja.style.display === 'none') ? 'inline-block' : 'none';
}
function alternarVisibility() {
caja.style.display = 'inline-block';
caja.style.visibility = (caja.style.visibility === 'hidden') ? 'visible' : 'hidden';
}
</script>
</body>
</html>
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de CSS3, Flexbox y Grid y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.