Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Make image same height as content with flexbox

I’m trying to have a picture for each user alongside the main content. The content may vary in height, and the pictures may also vary in aspect ratio. The picture has a fixed width, and needs to be at least a certain height – however, if the content is higher, it should max out.
Here’s an example, it fails at both tasks of

  1. cropping the image if the content is short
  2. maxing out if the content is long:
.container {
  display: flex;
  padding: 1rem;
  background: #ddd;
}
img {
  width: 4rem;
  height: auto;
  object-fit: cover;
}
<div class="container">
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, voluptates?
</div>
<img src="https://placedog.net/500/700" />
</div>
<div class="container">
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. At dignissimos eius quam iste, ad quisquam quidem dolore blanditiis minus magnam. Odit, quia. Placeat non voluptatum quis ab suscipit sequi earum, itaque asperiores ullam quasi ipsum iste perferendis nisi dolorem dicta expedita repudiandae deserunt numquam dolores! Modi aliquid enim dicta est, optio fugit sequi accusantium laboriosam ducimus dolorum molestiae unde dignissimos ea laudantium cum nam, a, asperiores iste perspiciatis ab mollitia. Nisi vitae, fugiat ex, ratione, debitis autem inventore possimus vel quam, expedita error amet quas? Unde sunt, quas suscipit accusantium, asperiores ex voluptatem! Libero nihil quidem sit dolorem doloribus iure natus necessitatibus voluptas voluptates ab cum, eaque cupiditate ipsam, ducimus, vero, ipsum laboriosam eveniet. Ipsa ullam iure molestias eveniet doloremque eaque, distinctio aliquam consectetur minima odit iste nesciunt reiciendis possimus. Dolores consequuntur temporibus aspernatur laborum explicabo voluptas ipsam sit, quas veritatis doloribus dolorem veniam labore facilis distinctio quo a. Numquam itaque, voluptates expedita nisi eligendi necessitatibus cumque in, eaque adipisci soluta cum, nam veritatis odio! Deleniti saepe veritatis architecto modi id dignissimos obcaecati quibusdam sapiente, recusandae soluta, possimus, laboriosam harum eaque esse quae cumque unde. Officiis, ratione. Veritatis sit doloremque praesentium eius, excepturi officiis, illum, magni quisquam culpa consectetur exercitationem.
</div>
<img src="https://placedog.net/500/700" />
</div>

I tried other things already, they accomplish one but fail at the other.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

You can try CSS grid:

.container {
  display: grid;
  grid-template-columns: auto 4rem;
  gap: 1rem;
  padding: 1rem;
  background: #ddd;
  /* justify-content: start uncomment this if you want the first column as wide as its content */
}
img {
  width: 100%;
  height: 0; /* the text will define the height but the image not */
  min-height: min(200px, 100%); /* 100% but no more than 200px */
  object-fit: cover;
}
<div class="container">
  <div>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, voluptates?
  </div>
  <img src="https://placedog.net/500/700" />
</div>
<div class="container">
  <div>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. At dignissimos eius quam iste, ad quisquam quidem dolore blanditiis minus magnam. Odit, quia. Placeat non voluptatum quis ab suscipit sequi earum, itaque asperiores ullam quasi ipsum iste perferendis
    nisi dolorem dicta expedita repudiandae deserunt numquam dolores! Modi aliquid enim dicta est, optio fugit sequi accusantium laboriosam ducimus dolorum molestiae unde dignissimos ea laudantium cum nam, a, asperiores iste perspiciatis ab mollitia.
    Nisi vitae, fugiat ex, ratione, debitis autem inventore possimus vel quam, expedita error amet quas? Unde sunt, quas suscipit accusantium, asperiores ex voluptatem! Libero nihil quidem sit dolorem doloribus iure natus necessitatibus voluptas voluptates
    ab cum, eaque cupiditate ipsam, ducimus, vero, ipsum laboriosam eveniet. Ipsa ullam iure molestias eveniet doloremque eaque, distinctio aliquam consectetur minima odit iste nesciunt reiciendis possimus. Dolores consequuntur temporibus aspernatur laborum
    explicabo voluptas ipsam sit, quas veritatis doloribus dolorem veniam labore facilis distinctio quo a. Numquam itaque, voluptates expedita nisi eligendi necessitatibus cumque in, eaque adipisci soluta cum, nam veritatis odio! Deleniti saepe veritatis
    architecto modi id dignissimos obcaecati quibusdam sapiente, recusandae soluta, possimus, laboriosam harum eaque esse quae cumque unde. Officiis, ratione. Veritatis sit doloremque praesentium eius, excepturi officiis, illum, magni quisquam culpa consectetur
    exercitationem.
  </div>
  <img src="https://placedog.net/500/700" />
</div>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading