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>