Tema 7 · Dimensiones

Anchura, Altura y Límites (min/max)

Aprende el control de dimensiones en interfaces responsivas: width fijo frente a max-width: 100%, min-width para legibilidad y límites de altura.

Dimensiones Fijas vs Dimensiones Fluidas

Asignar un ancho fijo como width: 800px; a un contenedor es un error común que provoca scroll horizontal indeseado en pantallas pequeñas de teléfonos móviles.

Para maquetaciones adaptables modernas, combinamos anchos porcentuales o relativos con límites máximos:

/* Contenedor responsivo fluido */
.contenedor {
  width: 100%;          /* En pantallas pequeñas ocupa todo el ancho disponible */
  max-width: 960px;     /* En pantallas grandes nunca superará los 960px */
  margin: 0 auto;       /* Permanece centrado horizontalmente */
}

Propiedades de Límites: min-* y max-*

Propiedad Función Caso de Uso Habitual
max-width Establece el ancho máximo que un elemento puede alcanzar. Imágenes fluidas (max-width: 100%; height: auto;) y tarjetas de lectura.
min-width Garantiza que el elemento nunca se encoja por debajo de ese límite. Botones con texto dinámico o tablas de datos críticas.
max-height Limita el crecimiento vertical de un contenedor. Modales, menús desplegables y listas largas con scroll interno (overflow-y: auto).
min-height Asegura un área vertical mínima sin importar si tiene poco texto. Secciones principales o "hero banners" de página completa (min-height: 100vh).

⚡ Contenedor Fluido con max-width y min-height

Prueba redimensionar la ventana o inspeccionar la vista móvil: el contenedor se contrae fluidamente sin romper los márgenes ni desbordar la pantalla:

index.html
Solo lectura
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>Dimensiones y Límites CSS</title>
  <style>
    body {
      font-family: Arial, Helvetica, sans-serif;
      background-color: #f1f5f9;
      margin: 0;
      padding: 20px;
    }

    /* Caja con max-width y min-height */
    .panel-responsivo {
      width: 100%;
      max-width: 580px;      /* Tope máximo en monitores */
      min-height: 220px;     /* Altura mínima garantizada */
      margin: 0 auto;
      background-color: #ffffff;
      border: 1px solid #cbd5e1;
      border-radius: 12px;
      padding: 24px;
      box-sizing: border-box;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    /* Imagen totalmente responsiva */
    .banner-muestra {
      width: 100%;
      max-width: 100%;
      height: 120px;
      background: linear-gradient(135deg, #0284c7, #6366f1);
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      font-weight: bold;
      font-size: 1.1rem;
      margin-bottom: 16px;
    }

    .pie-panel {
      border-top: 1px solid #e2e8f0;
      padding-top: 12px;
      font-size: 0.85rem;
      color: #64748b;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .boton-minimo {
      min-width: 140px; /* Asegura un botón cómodo para tocar con el pulgar */
      padding: 8px 16px;
      background-color: #0284c7;
      color: white;
      border: none;
      border-radius: 6px;
      font-weight: 600;
      cursor: pointer;
    }
  </style>
</head>
<body>

  <div class="panel-responsivo">
    <div>
      <div class="banner-muestra">
        max-width: 100% (Fluido)
      </div>
      <h3 style="margin: 0 0 8px 0; color: #0f172a;">Control Dimensional Responsivo</h3>
      <p style="margin: 0 0 16px 0; color: #475569; font-size: 0.95rem; line-height: 1.5;">
        Este contenedor usa <code>max-width: 580px</code> y <code>min-height: 220px</code>. Si reduces el ancho del navegador, la caja se ajustará suavemente sin generar barras de desplazamiento horizontales.
      </p>
    </div>

    <div class="pie-panel">
      <span>Kilopolis Academia</span>
      <button class="boton-minimo">Confirmar &raquo;</button>
    </div>
  </div>

</body>
</html>
Pruébalo tú mismo » Se abre en una nueva pestaña con ejecución en vivo
🦉
¿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.