CSS Problemas Técnicos Programación Tips

Trucos CSS: Fijar la misma altura en varios Divs

Maxim Popov, freepik.es

¿Cómo lograr que varios elementos con contenido diferente tengan la misma altura?

Este miniproblema de estilo puede hacernos perder la paciencia, junto a muchas horas de productividad. Y es que las posibles soluciones, aunque sencillas, no son muy intuitivas.

Imaginemos que tenemos la siguiente situación:

Una serie de Divs, más o menos con el mismo contenido, pero en el que uno de ellos no termina de alinear su altura con la de los demás.

Hemos probado a poner exactamente las mismas líneas de contenido, la misma altura de las imágenes, e incluso comandos CSS como max-height o min-height, pero lo que funciona en una resolución, al hacer la pantalla más pequeña, se descuadra en otra. ¡¿Qué hacer?!

 

 

Solución 1: Display Flex

Imaginemos que tenemos el siguiente código:

 

<div id="contenedor">
     <div id="primero" style="width: 25%; float:left;">
         En un lugar de la Mancha, de cuyo nombre no quiero acordarme...
     </div>
     
     <div id="segundo" style="width: 25%; float:left;">
          ...no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero adarga antigua, rocín flaco y galgo corredor...
     </div>

     <div id="tercero" style="width: 25%; float:left;">
         ...Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lentejas los viernes, algún palomino de añadidura los domingos, 
         consumían las tres partes de su hacienda...
     </div>

     <div id="cuarto" style="width: 25%; float:left;">
         ...El resto della concluían sayo de velarte, calzas de velludo para las fiestas con sus pantuflos de lo mismo, los días de entre semana se honraba con su vellori de 
         lo más fino.
     </div>
</div>

La solución es tan sencilla como añadir display:flex al div contenedor:

<div id="contenedor" style="display:flex;">
     <div id="primero" style="width: 25%; float:left;">
         En un lugar de la Mancha, de cuyo nombre no quiero acordarme...
     </div>
     
     <div id="segundo" style="width: 25%; float:left;">
          ...no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero adarga antigua, rocín flaco y galgo corredor...
     </div>

     <div id="tercero" style="width: 25%; float:left;">
         ...Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lentejas los viernes, algún palomino de añadidura los domingos, 
         consumían las tres partes de su hacienda...
     </div>

     <div id="cuarto" style="width: 25%; float:left;">
         ...El resto della concluían sayo de velarte, calzas de velludo para las fiestas con sus pantuflos de lo mismo, los días de entre semana se honraba con su vellori de 
         lo más fino.
     </div>
</div>

 

De esa manera, no importa lo alto que sea un Div, el resto se adaptarán siempre a la altura del mayor:

 

Si queremos hacer lo mismo con la anchura, habrá que utilizar  flex: 1; en los Divs interiores:

<div id="contenedor" style="display:flex;">
     <div id="primero" style="width: 25%; float:left;">
         En un lugar de la Mancha, de cuyo nombre no quiero acordarme...
     </div>
     
     <div id="segundo" style="width: 25%; float:left; flex: 1;">
          ...no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero adarga antigua, rocín flaco y galgo corredor...
     </div>

     <div id="tercero" style="width: 25%; float:left; flex:&nbsp;1;">
         ...Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lentejas los viernes, algún palomino de añadidura los domingos, 
         consumían las tres partes de su hacienda...
     </div>

     <div id="cuarto" style="width: 25%; float:left; flex:&nbsp;1;">
         ...El resto della concluían sayo de velarte, calzas de velludo para las fiestas con sus pantuflos de lo mismo, los días de entre semana se honraba con su vellori de 
         lo más fino.
     </div>
</div>

Solución 2: Overflow Hidden

No es tan elegante como la anterior, pero si de ocultar lo poquito que sobra se trata, esta nos puede valer.

Ahora no igualamos la altura, ocultamos lo que sobrepasa en altura a los demás elementos:

<style>
    .container { 
        overflow: hidden; 
    } 

    .column { 
        float: left; 
        margin: 20px; 
        background-color: grey; 
        padding-bottom: 100%; 
        margin-bottom: -100%; 
    }
</style>

<div class="container">

    <div class="column">
        Joróbate Franders<br>
        Joróbate Flanders<br>
        Joróbate Flanders<br>
        Joróbate Flanders<br>
        Joróbate Flanders<br>
    </div>

    <div class="column">
        Frito y Re-bo-zado
    </div>

</div>

 

Solución 3: Comportamiento de tabla

CSS permite que los Divs antúen como las antiguas tablas de HTML. ¿Cómo?

display: table-row; para el contenedor, y display: table-cell; para los divs contenidos.

 

<style>
    .container { 
        display: table-row; 
    } 

    .column { 
        display: table-cell;
    }
</style>

<div class="container">

    <div class="column">
        Joróbate Franders<br>
        Joróbate Flanders<br>
        Joróbate Flanders<br>
        Joróbate Flanders<br>
        Joróbate Flanders<br>
    </div>

    <div class="column">
        Frito y Re-bo-zado
    </div>

</div>

 

Hay muchas otras soluciones como usar jquery para que iguale la altura de manera dinámica, o posicionarlo todo con position:relative o absolute, pero las soluciones más sencillas y socorridas son las arriba nombradas.

¿Crees que deberíamos incluir otra solución importante? Cuéntanoslo en los comentarios!

 

Si te ha resultado útil esta entrada, ¡no olvides compartirla!

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

2 Comentarios

Haz clic aquí para dejar tu comentario

Responder a Alguien Cancelar Respuesta

  • Tengo un problema parecido, pero no encuentro la solución en ningún lado.
    Si tengo un contenedor con varios divs y cada div tiene diferentes elementos, pero cada elemento tiene su propia anchura, como puedo hacer para que cuando empiece un nuevo elemento de cada div se alinee en altura a los elementos de misma clase de los otros divs?
    O mejor ejemplo, como podría hacer con el ejemplo puesto en esta página para poner el botón contactar a la misma altura que los otros botones?

Flickr

  • Anja
  • Reader
  • très près
  • brève
  • dans un filet
  • Catriona
  • bad weather
  • gun  & shadow
  • Bidule

About Author

ThemeForest

Collaboratively harness market-driven processes whereas resource-leveling internal or "organic" sources. Competently formulate.

Calendar

septiembre 2025
L M X J V S D
1234567
891011121314
15161718192021
22232425262728
2930  

RSS Meks Blog

  • How Adding Slack Bot Boosted Our Culture of Appreciation 3 julio, 2024
    Sweet Kudos is a Slack bot that enhances employee recognition, rewards, and celebrations within your team. It empowers team members to express gratitude and appreciation effortlessly by giving virtual Kudos. The post How Adding Slack Bot Boosted Our Culture of Appreciation appeared first on Meks.
    Dusan Milovanovic
  • 10 Best Knowledge Base & Wiki WordPress Themes 2021 15 septiembre, 2021
    Running a successful online business requires an exceptional WordPress knowledge base theme that organizes documentation and helps customers. Customization options, intuitive navigation, unique layouts, and fast responsiveness are just some of the features you need. The following 10 WordPress wiki themes represent the best options for 2021 and beyond. Explore the full range to determine […]
    Dusan Milovanovic
  • How to increase WordPress Memory Limit (quick fixes) 16 junio, 2021
    Here is a post about how to increase the memory limit in WordPress. Allowed memory size exhausted error message showed up in your WordPress installation? No worries – this is one of the most common errors in WordPress. You can apply an easy fix by increasing the memory limit in your PHP. Table of Contents […]
    Dusan Milovanovic
  • How to use (and why) WordPress sitemap plugin 1 marzo, 2021
    Did you know that by knowing how to use the WordPress sitemap plugin you can significantly improve your site’s visibility and traffic? Although it isn’t mandatory to have a sitemap on your site, having one significantly improves the site’s quality, crawlability and indexing. All this is important for better optimization, which is why we wanted […]
    Ivana Cirkovic
  • 22 free and premium podcast software for your show [2021 edition] 18 enero, 2021
    You’re determined to start or improve your podcast but don’t know which podcast software to use to really make it stand out? We’ve got you! #podcasting Top 22 free and premium podcast software for your show #WordPressTips #podcasting The post 22 free and premium podcast software for your show [2021 edition] appeared first on Meks.
    Ivana Cirkovic
  • Digital storytelling with WordPress – an all-in-one guide to make your web stories pop! 23 noviembre, 2020
    Wondering how to improve digital storytelling with WordPress and build more awareness and exposure of your business? Let our guide lead the way. The post Digital storytelling with WordPress – an all-in-one guide to make your web stories pop! appeared first on Meks.
    Ivana Cirkovic
  • How to use WordPress autoposting plugin to improve your visibility and SEO? 10 septiembre, 2020
    Did you know you can use the WordPress autoposting plugin for your content efforts and improve not only your time management but your business and visibility as well? The post How to use WordPress autoposting plugin to improve your visibility and SEO? appeared first on Meks.
    Ivana Cirkovic
  • How to create a personal branding site? Step-by-step DIY guide 15 agosto, 2020
    Looking for ways and means to create a personal branding site? Well, look no further ’cause we’re giving away all the how-to’s to do it yourselves! The post How to create a personal branding site? Step-by-step DIY guide appeared first on Meks.
    Ivana Cirkovic
  • Top 15 WordPress content plugins and tools to improve your visibility and rankings 16 julio, 2020
    Let’s take a look at some of the must-have WordPress content plugins and tools to use to improve both your UX and rankings. The post Top 15 WordPress content plugins and tools to improve your visibility and rankings appeared first on Meks.
    Ivana Cirkovic
  • WCEU 2020 recap – key takeaways from the biggest online WordPress conference 9 junio, 2020
    Missed WCEU 2020 and all the exciting stuff from there? Here are all the key takeaways and main points to remember so, take notes! The post WCEU 2020 recap – key takeaways from the biggest online WordPress conference appeared first on Meks.
    Ivana Cirkovic

Text

Distinctively utilize long-term high-impact total linkage whereas high-payoff experiences. Appropriately communicate 24/365.

Archives