Tema 10 · Posicionamiento

Posicionamiento (static, relative, absolute, fixed, sticky)

Domina los cinco modos de posicionamiento con position en CSS: el flujo normal (static), referencias relativas, extracción absoluta, elementos fijos en pantalla y cabeceras sticky.

Los 5 Modos de Posicionamiento

La propiedad position define el método de cálculo espacial que emplea el navegador para ubicar un elemento, activando las coordenadas top, right, bottom y left.

Valor ¿Sale del flujo? Punto de Referencia Uso Típico
static No El flujo HTML normal por defecto. Ignora coordenadas top/left. El 90% de los elementos comunes.
relative No Su propia posición original. Sirve como ancla para hijos con absolute. Ajustes finos y contenedores de insignias o botones flotantes.
absolute Sí El ancestro posicionado más cercano que no sea static (usualmente un padre relative). Insignias en esquinas, menús desplegables (dropdowns) e iconos sobre imágenes.
fixed Sí La ventana del navegador (viewport). Permanece inmóvil al hacer scroll. Botones de chat flotante (WhatsApp), modales y barras de notificación superior.
sticky No Fluye como relative hasta que alcanza un umbral de scroll y se comporta como fixed. Barras de navegación superiores y cabeceras de tablas con scroll largo.

El Patrón Clásico: Padre relative + Hijo absolute

Para colocar una etiqueta o insignia ("badge") en la esquina exacta de una tarjeta de producto, siempre declaramos:

.tarjeta {
  position: relative; /* Actúa como sistema de coordenadas para sus hijos */
}

.insignia-oferta {
  position: absolute;
  top: 12px;
  right: 12px;        /* Fijado a 12px de la esquina superior derecha de la tarjeta */
}

⚡ Insignia Absoluta y Botón Flotante con Posicionamiento

Observa cómo la insignia se ancla a la esquina de la tarjeta (position: absolute dentro de relative) y el botón de ayuda se fija a la pantalla (position: fixed):

index.html
Solo lectura
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>Posicionamiento CSS3</title>
  <style>
    body {
      font-family: Arial, Helvetica, sans-serif;
      background-color: #f1f5f9;
      margin: 0;
      padding: 30px;
      color: #0f172a;
    }

    /* Tarjeta padre con position: relative */
    .tarjeta-curso {
      position: relative;
      background: #ffffff;
      border: 1px solid #cbd5e1;
      border-radius: 12px;
      padding: 24px;
      max-width: 380px;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
      margin-bottom: 20px;
    }

    /* Insignia con position: absolute */
    .insignia-esquina {
      position: absolute;
      top: -10px;
      right: 15px;
      background: #ef4444;
      color: white;
      padding: 4px 10px;
      border-radius: 12px;
      font-size: 0.75rem;
      font-weight: bold;
      box-shadow: 0 2px 4px rgba(239, 68, 68, 0.4);
    }

    /* Botón de ayuda fijado con position: fixed */
    .btn-flotante {
      position: fixed;
      bottom: 25px;
      right: 25px;
      background: #10b981;
      color: white;
      border: none;
      padding: 12px 20px;
      border-radius: 30px;
      font-weight: bold;
      cursor: pointer;
      box-shadow: 0 4px 10px rgba(16, 185, 129, 0.4);
    }
  </style>
</head>
<body>

  <div class="tarjeta-curso">
    <span class="insignia-esquina">¡NUEVO!</span>
    <h3 style="margin-top: 5px;">Máster en CSS3 & Grid</h3>
    <p style="color: #64748b; font-size: 0.95rem; line-height: 1.5;">
      La insignia roja está posicionada de forma absoluta respecto a este contenedor con <code>top: -10px; right: 15px</code>.
    </p>
  </div>

  <button class="btn-flotante" onclick="alert('¡Botón fijo con position: fixed!')">
    💬 Ayuda en Vivo
  </button>

</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.