EniunEniunEniunEniun
  • Inicio
  • Blog
  • Cursos
  • Contactar
  • DTD
✕
            Sin resultados Ver todos los resultados

            Posición y comportamiento de contenedores en CSS

            • Inicio
            • CSS y Sass CSS Nivel inicial
            • Posición y comportamiento de contenedores en CSS
            12/10/2019
            Posición comportamiento contenedores CSS

            Posición comportamiento contenedores CSS

            12. Posición y comportamiento de contenedores en CSS

            En el proceso de creación de una web es imprescindible organizar elementos como imágenes, textos o tablas. Para ello, necesitaremos conocer los elementos de ordenación y las propiedades que nos ayudan a organizar todos los componentes. Las propiedades más importantes se definen en la siguiente tabla y se explican a continuación.

            Contenidos del artículo

            Toggle
            • 12. Posición y comportamiento de contenedores en CSS
            • 12.1. Display
            • 12.2. Position
              • 1.2.1. Ejemplo position: static
              • 1.2.2. Ejemplo position: relative
              • 1.2.3. Ejemplo position: fixed
              • 1.2.4. Ejemplo position: absolute
              • 1.2.5. Ejemplo position: sticky
            • 12.3. Float
            • 12.4. Clear
            • 12.5. Z-index
            • 12.6. Box-sizing
            • 12.7. Visibility
            PropiedadDescripciónValores
            displayComportamiento del contenedorinline | block | inline-block | none
            positionEsquema de posicionamientostatic | relative | absolute | fixed | sticky
            top right bottom leftDesplazamiento de la caja respecto al borde superior, derecho, inferior o izquierdolongitud | porcentaje | auto
            floatPosicionamiento flotanteleft | right | none
            clearControl de cajas adyacentes a las floatnone | left | right | both
            z-indexNivel de la capaauto | número entero
            box-sizingControl de bordes y relleno en el comportamiento del contenedorcontent-box | border-box
            visibilityMuestra u oculta un elemento ocupando el espaciovisible | hidden
            Tabla 1: Posición y comportamiento de las cajas o contenedores

            Las propiedades top, bottom, left y right se utilizan para posicionar elementos en una página web cuando se está usando posicionamiento mediante las propiedades de CSS como position: relative, position: absolute, position: fixed o position: sticky; estas propiedades definen distancias desde los bordes del contenedor de referencia (que puede ser el contenedor padre o la ventana del navegador) y sus valores pueden expresarse en unidades como píxeles (px), porcentaje (%) en relación al contenedor padre, unidades relativas al tamaño de fuente como em o rem, entre otras.

            12.1. Display

            Valores: none | inline | block | inline-block

            • none: los elementos se ocultan y no se muestra el espacio reservado.
            • inline: los elementos se muestran en la misma línea (respetando el flujo) y no se aceptan las propiedades width, height ni márgenes verticales.
            • block: los elementos se muestran en líneas independientes y se aceptan las propiedades width, height y márgenes verticales.
            • inline-block: su comportamiento es una mezcla entre los dos anteriores, los elementos se muestran en la misma línea (respetando el flujo) y se aceptan las propiedades width, height y márgenes verticales.

            Ejemplo display

            Aplica los siguientes estilos sobre diferentes elementos y comprueba el resultado.

            .a { display: none; }
            .b { display: inline; width: 100px; height: 50px;}
            .c { display: block; }
            .d { display: inline-block; width: 100px; height: 50px;}

            12.2. Position

            Valores: static | relative | absolute | fixed

            • static: los elementos se posicionan de acuerdo al flujo normal de la página. Es la posición natural de los elementos. No son afectados por las propiedades top, bottom, left y right.
            • relative: los elementos se posicionan de forma relativa a su posición normal.
            • fixed: los elementos se posicionan de forma relativa a la ventana del navegador. Su posición permanece fija aunque se desplace la ventana.
            • absolute: los elementos se posicionan de forma relativa al primer elemento padre que tenga una posición distinta a static. Si un elemento con position: absolute no tiene un contenedor padre posicionado (con position: relative, absolute, fixed o sticky), entonces se posicionará en relación a la ventana del navegador.
            • sticky: los elementos son posicionados de forma relativa hasta que su bloque contenedor alcanza un límite establecido.

            1.2.1. Ejemplo position: static

            Aplica los siguientes estilos sobre diferentes elementos y comprueba que los elementos mantienen su posición natural. Como puedes comprobar, las propiedades top, bottom, left y right no están permitidas con «position: static».

            .a { position: static; }
            .b { position: static; }
            .c { position: static; }

            1.2.2. Ejemplo position: relative

            Aplica el siguiente estilo sobre un elemento y comprueba que con las propiedades left: 20px y top: 10px el elemento se desplaza 20px hacia la derecha y 10 px hacia abajo desde su posición por defecto (sin eliminar el hueco de su posición por defecto).

            .bloque2 { position: relative; left: 20px; top: 10px;  }

            1.2.3. Ejemplo position: fixed

            Tal y como puedes comprobar en el siguiente ejemplo, los elementos con position: fixed toman como referencia la ventana del navegador y permanecen fijos.

            .bloque2 { position: fixed; top: 130px; left: 100px; }

            1.2.4. Ejemplo position: absolute

            Establece el siguiente estilo sobre dos contenedores y comprueba cómo el elemento «.b» deja de seguir la posición del flujo normal de la página, sin crearse espacio alguno para el elemento, y se posiciona de forma relativa al primer elemento padre que tiene una posición distinta a static, en este caso el elemento «.a». Si no hubiese ningún elemento padre con propiedad distinta a static, se ubicaría de forma relativa al contenedor inicial (puede ser <body>). Haz la prueba cambiando el valor de position a «static» en el elemento a. Como puedes ver, su posición final está definida por los valores de top, right, bottom, y left.

            .a {
              position: relative; /*cambia este valor a static para ver la diferencia*/
              width: 300px;
              height: 300px;
              border: 2px dotted purple; 
            } 
            .b {
              position: absolute; /*Se posiciona de forma relativa al primer elemento padre que tiene una posición distinta a static*/
              background-color: #EEEEEE;
              top: 60px;
              right: 0px;
              width: 200px;
              height: 80px;
              border: 3px solid green;
            }

            1.2.5. Ejemplo position: sticky

            La posición sticky se usa cuando queremos que un elemento tenga una posición relativa hasta un punto y que luego cambie a una posición fija, usando solo CSS sin necesidad de código JavaScript. Por ejemplo si tenemos un banner de publicidad flotante en el sidebar y nos interesa que una vez aparezca al hacer scroll se mantenga fijo y visible.

            La propiedad position: sticky se utiliza junto con valores de desplazamiento (top, right, bottom, left) para definir cuándo y dónde debe volverse fijo el menú o contenedor específico que queramos.

            Otro ejemplo puede ser el que se muestra acontinuación y que nos sirve para posicionar los encabezados en una lista alfabética en la parte alta del documento HTML.

            p {
              position: -webkit-sticky;
              position: sticky;
              top: 0px;
              background-color: #e1f4fc;
              padding: 20px;
              font-weight: bold;
            }
            ul{
              margin: 20px 0;
            }
            li{
              padding-left: 20px;
            }

            12.3. Float

            Valores: left | right | none

            Cuando a un elemento HTML se le aplica un estilo con la propiedad float, el elemento sale del flujo normal y aparece posicionado a la izquierda o a la derecha de su contenedor, donde el resto de elementos de la página se posicionarán alrededor.

            Ejemplo float

            Aplica los siguientes estilos sobre diferentes contenedores y comprueba el resultado. 

            .a { float: left; }
            .b { float: right; }
            .c { float: right; }
            .d { clear: both; }

            12.4. Clear

            Valores: none | left | right | both

            La propiedad clear establece si un elemento debe estar al lado de los elementos flotantes que lo preceden o si debe situarse bajo de ellos. Se suele utilizar para restaurar el flujo normal del documento y así los elementos dejan de flotar hacia la izquierda, la derecha o ambos lados.

            Ejemplo clear

            Crea un contenedor y aplícale la propiedad float con el valor left. Sitúa un texto bajo del contenedor creado utilizando la propiedad clear.

            p{ clear: both; }

            12.5. Z-index

            Valores: auto | número entero

            Mediante el atributo z-index podemos organizar cada uno de los elementos del contenido de una página web. Como se puede apreciar en la imagen, cuando varios elementos se superponen, los elementos con mayor valor z-index se sitúan por encima de los que tienen menor valor.

            Propiedad Z-index

            Ejemplo z-index

            Aplica los siguientes estilos sobre diferentes contenedores que se encuentren superpuestos y comprueba el resultado.

            .a { z-index: 3;}
            .b { z-index: 1;}
            .c { z-index: 2;}

            12.6. Box-sizing

            Por defecto en el modelo de cajas de CSS, el ancho y alto asignado a un elemento es aplicado solo al contenido de la caja del elemento. Si el elemento tiene algún borde (border) o relleno (padding), este es entonces añadido al ancho y alto del tamaño de la caja o contenedor. Esto significa que cuando se define el ancho y alto, se tiene que ajustar el valor para permitir cualquier borde o relleno que se pueda añadir.

            Valores: content-box | border-box

            • content-box es el comportamiento CSS por defecto para el tamaño de la caja (box-sizing). Si se define el ancho de un elemento en 100 pixeles, la caja del contenido del elemento tendrá 100 pixeles de ancho, y el ancho de cualquier borde o relleno será añadido al ancho final desplegado.
            • border-box toma en cuenta cualquier valor que se especifique de borde o de relleno para el ancho o alto de un elemento. Es decir, si se define un elemento con un ancho de 100 pixeles. Esos 100 pixeles incluirán cualquier borde o relleno que se añada, y la caja de contenido se encogerá para absorber ese ancho extra. Esta propiedad es especialmente útil para redimensionar cualquier elemento.

            Ejemplo box-sizing

            Crea un contenedor que ocupe el 100% del ancho de la pantalla. Posiciona tres imágenes en línea y define que cada imagen ocupe el 33,333%. Observa que el conjunto ocupa el 100% de la pantalla. 

            Si a continuación dotamos a las imágenes de un padding o relleno, el conjunto ocupará más del 100%. En este punto podríamos establecer un “box-sizing: border-box“ para incluir en el conjunto el relleno definido. Acuérdate de añadir los prefijos para los navegadores:

            -webkit-box-sizing: border-box;
            box-sizing: border-box;

            Como puedes ver en el código, se han añadido los prefijos para navegadores necesarios para esta nueva propiedad.

            12.7. Visibility

            La propiedad visibility indica si un elemento es visible o permanece oculto (ocupando el mismo espacio).

            Valores: visible | hidden

            Ejemplo visibility

            Aplica las siguientes propiedades sobre un elemento y observa las diferencias. Como puedes ver, la diferencia principal es que display: none no reserva el espacio del elemento mientras que visibility: hidden sí.

            .a {display:none;} 
            .b {visibility: hidden;} 

            Comprueba tu apendizaje

            Navegación de entradas

            ← Propiedades de las tablas en CSS
            Pseudo-clases y pseudo-elementos en CSS →

            Curso CSS Inicial

            • 1. ¿Qué es CSS?
            • 2 ¿Cómo aplicar estilos CSS?
            • 3. Selectores
            • 4. Unidades de medida
              • Unidades vh y vw
            • 5. Colores y fondo
              • Efecto parallax
            • 6. Propiedades de texto
            • 7. Propiedades de las fuentes
            • 8. Propiedades de las listas
            • 9. Modelo de cajas: márgenes, relleno y bordes
            • 10. Tamaño: width, height, max-width…
            • 11. Propiedades de las tablas
            • 12. Posición y comportamiento de contenedores
            • 13. Pseudo-clases y pseudo-elementos
            • 14. Cómo crear un menú horizontal
            • 15. Propiedad overflow, excedente de contenido
            • 16. Espacio entre elementos inline-block
            • 17. Problemas con flotantes y sus soluciones
            • 18. Estilos en formularios CSS
            • 19. Herramientas útiles y tests de verificación
            • 20. Inspeccionar elementos en el navegador para encontrar errores
            • 21. Buenas prácticas CSS
              • 21.1. Nombres de clases: mejores prácticas y ejemplos
              • 21.2. Rutas de archivos en HTML/CSS
            • 23. Test de conocimiento
            • 24. Ejercicios resueltos CSS
            • 25. Resumen propiedades CSS
            Ver más cursos

            ¡Invítanos a un café!

            ¿Cómo donar?
            Ayúdanos a seguir creando contenido relacionado con la informática y el diseño y desarrollo web en Eniun. ¡Gracias por tu apoyo!
            Eniun

            info@eniun.com
            Reportar un error

            Servicios

            Desarrollo Web
            Diseño Web
            Marketing Digital
            Social Media
            Experiencia de Usuario
            Cursos formativos

            Suscríbete a la newsletter

            Únete a nuestra comunidad para recibir contenido exclusivo y relevante para diseñadores y desarrolladores web.

            Apuntarme

            © 2026 Eniun | Política de privacidad y cookies

                      Sin resultados Ver todos los resultados