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

            Problemas con flotantes en CSS y sus soluciones

            • Inicio
            • CSS y Sass CSS Nivel inicial
            • Problemas con flotantes en CSS y sus soluciones
            12/10/2019
            problemas flotantes soluciones

            problemas flotantes soluciones

            Explora los problemas comunes al usar flotantes en CSS y aprende soluciones efectivas. Nuestro artículo aborda errores como el contenedor que no contiene a sus flotantes, el colapso de contenedores y alineación irregular, ofreciendo técnicas claras y prácticas para manejar el comportamiento de los flotantes. Ideal para desarrolladores web que buscan mejorar su comprensión de CSS y perfeccionar sus habilidades de diseño de layout.

            Contenidos del artículo

            Toggle
            • Problemas con flotantes en CSS y sus soluciones
              • 1. Problema del contenedor que no contiene sus flotantes
              • 2. Problema de colapsamiento de contenedores
              • 3. Problema de alineamiento de flotantes
            • El truco de la clase .clearfix para solucionar errores con flotantes
              • Paso 1: Crear la clase clearfix
              • Paso 2: Aplicar la clase al contenedor padre de los elementos flotantes
              • Por qué y cuándo es necesario

            Problemas con flotantes en CSS y sus soluciones

            El uso de flotantes (float) en CSS ha sido una técnica común para el diseño de layout antes de la introducción de Flexbox y CSS Grid. Sin embargo, trabajar con flotantes puede llevar a varios errores o problemas comunes, especialmente en lo que respecta al flujo del documento y la contención de elementos. Veamos algunos ejemplos de estos errores y cómo solucionarlos.

            1. Problema del contenedor que no contiene sus flotantes

            HTML:

            <div class="container">
                <div class="floating">Elemento Flotante 1</div>
                <div class="floating">Elemento Flotante 2</div>
                <!-- El contenedor no "contiene" los elementos flotantes -->
            </div>

            CSS:

            .floating {
                float: left;
                width: 50%;
            }
            .container {
                background-color: lightblue;
                /* El contenedor no se expande para contener los flotantes */
            }

            Problema: El contenedor .container no se expande para incluir los elementos flotantes, por lo que el fondo no se muestra como se espera.

            Solución: Utilizar la técnica del «clearfix» o overflow: hidden.

            CSS Corregido:

            .container {
                background-color: lightblue;
                overflow: hidden; /* Solución 1: Uso de overflow:hidden */
            }
            
            /* Solución 2: Usamos la técnica del clearfix: limpiamos los flotantes */
            .container::after {
                content: "";
                display: block;
                clear: both;
            }

            Ejemplo en CodePen

            Abre el editor de CodePen y prueba las soluciones propuestas:

            2. Problema de colapsamiento de contenedores

            HTML:

            <div class="container">
                <div class="floating">Elemento Flotante 1</div>
                <div class="floating">Elemento Flotante 2</div>
            </div>
            <p>Otro contenido aquí...</p>

            CSS:

            .floating {
                float: left;
                width: 50%;
            }
            .container {
                overflow: hidden;
            }
            p {
                background-color: lightblue;
            }

            Problema: Al definir de color lightblue el párrafo (<p>) que hay a continuación de los flotantes, se ponen de color azul también los flotantes

            Solución: Asegurarse de limpiar los flotantes.

            CSS Corregido:

            .p {
                clear:both;
            }

            Ejemplo en CodePen

            Abre el editor de CodePen y prueba las soluciones propuestas:

            3. Problema de alineamiento de flotantes

            HTML:

            <div class="container">
                <div class="floating">Elemento Flotante 1</div>
                <div class="floating">Elemento Flotante 2</div>
            </div>
            <p>Otro contenido aquí...</p>

            CSS:

            .floating {
                float: left;
                width: 50%;
            }
            .container {
                overflow: hidden;
            }
            p {
                background-color: lightblue;
            }

            Problema: Flotantes de diferentes alturas pueden causar un alineamiento irregular.

            Solución: Asegurar que todos los flotantes tengan la misma altura (sería definiendo un alto fijo) o considerar usar Flexbox/CSS Grid para un diseño más uniforme.

            Ejemplo en CodePen

            Abre el editor de CodePen y prueba el problema descrito

            En los ejemplos anteriores has estudiado algunos problemas comunes al trabajar con flotantes en CSS y cómo puedes solucionarlos. Sin embargo, en la actualidad, Flexbox y CSS Grid proporcionan métodos más eficientes y flexibles para crear layouts sin muchos de estos problemas inherentes a los flotantes.

            El truco de la clase .clearfix para solucionar errores con flotantes

            El «clearfix» es un truco clásico en CSS que se utiliza para resolver un problema común con los elementos flotantes (float). Cuando se usa float en un elemento, este elemento sale del flujo normal del documento y no afecta la altura de su contenedor padre. Esto puede llevar a que el contenedor no se expanda para envolver a sus hijos flotantes, afectando el layout de la página.

            El truco clearfix se emplea para forzar al contenedor a expandirse y envolver completamente a sus hijos flotantes, manteniendo así la integridad del layout. Veamos cómo funciona:

            Paso 1: Crear la clase clearfix

            Primero, defines una clase clearfix en tu hoja de estilos CSS:

            .clearfix::after {
                content: "";
                display: block;
                clear: both;
            }

            Esta regla CSS utiliza un pseudo-elemento (::after) para insertar contenido vacío después del último elemento flotante dentro del contenedor. La propiedad display: blocl; asegura que este pseudo-elemento se comporte como un elemento de bloque, y clear: both; fuerza al pseudo-elemento a moverse debajo de ambos flotantes (tanto izquierdo como derecho). Esto efectivamente «limpia» los flotantes y hace que el contenedor padre reconozca la altura total de sus elementos hijos flotantes.

            Paso 2: Aplicar la clase al contenedor padre de los elementos flotantes

            Luego, aplicas esta clase al contenedor de tus elementos flotantes:

            <div class="clearfix">
                <div style="float: left;">Contenido Flotante 1</div>
                <div style="float: left;">Contenido Flotante 2</div>
                <!-- El clearfix se aplica al contenedor -->
            </div>

            En este ejemplo, el contenedor con la clase clearfix ahora se expandirá para envolver completamente a sus elementos flotantes, asegurando que el layout se mantenga como se esperaba.

            Por qué y cuándo es necesario

            Antes de Flexbox y CSS Grid, los flotantes eran una técnica común para layouts, pero este problema de contenedores que no reconocían la altura de los elementos flotantes causaba muchos dolores de cabeza a los desarrolladores. El truco clearfix era una solución ampliamente adoptada para abordar este problema.

            Hoy en día, con técnicas modernas como Flexbox y CSS Grid, el uso de flotantes (y por ende, el uso del truco clearfix) ha disminuido, ya que estas nuevas técnicas ofrecen una forma más intuitiva y flexible de manejar layouts complejos sin los problemas asociados con los flotantes.

            Navegación de entradas

            ← Espacio entre elementos inline-block en HTML y CSS
            Estilos en formularios CSS, propiedades necesarias →

            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