Здесь есть две основные проблемы:
- Фиксированный контейнер или элемент изображения не имеет фиксированной высоты.
- Не существует фиксированной ширины элемента флекс, содержащего изображение..
Проблема № 1: Флекс-контейнер или элемент изображения не имеет фиксированной высоты.
Поскольку на флекс-контейнере или элементе нет фиксированной высотысодержащие изображение (.col.game-host-logo
), оба имеют размер в зависимости от размера содержимого (height: auto
по умолчанию, согласно спецификации ).
В этом случае содержимое являетсяизображение с натуральными размерами 482 x 565 пикселей.
![enter image description here](https://i.stack.imgur.com/YbQ8i.png)
![enter image description here](https://i.stack.imgur.com/Zn7HK.png)
Проблема# 2: На элементе flex, содержащем изображение, фиксированной ширины нет.
Поскольку на элементе, содержащем изображение, фиксированной ширины нет, изображение снова может свободно расширяться до его естественных размеров.
При установке ширины элемента ваша проблема, кажется, решается без нарушения каких-либо вашихтребования.
jsFiddle demo
.container {
display: flex;
}
.col.logo {
width: 40%;
max-width: 400px;
}
.col.logo img {
max-width: 100%;
height: auto;
}
.col.live-msg {
flex: 1; /* consumes all free space */
}
.col.game-host-logo {
width: 20%; /* new */
}
.col.game-host-logo img {
max-width: 100%;
}
.col {
background: hsla(0, 0%, 100%, .1);
margin: 2px;
padding: 10px;
}
body {
font-family: Roboto, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #fff;
background: #20262e;
}
<div class="container">
<div class="col logo">
<img src="https://dromfemman.se/assets/img/dromfemman_logo.png" />
</div>
<div class="col live-msg">
Text Message
</div>
<div class="col game-host-logo">
<img src="https://dromfemman.se/assets/img/ssl_logo.svg" />
</div>
</div>