I have this very simple flexbox layout with some text and a background image element beside it. The background image element to the right needs to automatically keep the same height as the text element as well as an aspect ratio of 1/1, like so:
But the aspect ratio property is ignored. The height of the #image
element is set to the height of the flexbox like I want it (since the flexbox by default sets align-items: stretch
). But the width stays at 0, despite the aspect ratio property, which should set the width to the same as the height.
Interestingly, if the flexbox is set to flex-direction: column
it does work as expected.
Why isn't aspect ratio correctly applied in a row flexbox and how do I fix it?
#wrapper { display: flex;}#image { background-image: linear-gradient(red, gray); border: 1px solid black; aspect-ratio: 1 / 1;}
<div id="wrapper"><div id="text"><h3>A headline</h3> And some text below it<br> Element to the right should be a square</div><div id="image"></div></div>