Вышеприведенная ссылка на возможный дубликат не является решением для этого случая, так как высота будет фиксированным значением для нескольких точек останова.CSS: Соотношение сторон элемента для заданной высоты
У меня есть некоторые DIVs с display:inline-block
, поэтому они плавают красиво бок о бок. Эти DIV все имеют одинаковую высоту, например. height:300px
. Позже я загружу изображение внутри каждого DIV с помощью Ajax, и я хочу, чтобы DIV сохранял соотношение сторон изображения, поэтому они не будут покачиваться вокруг, когда изображение действительно загружено.
Поэтому, когда в браузере отображаются DIV, изображения еще не установлены, поэтому установка высоты изображения с height:auto;
не будет работать.
Пример кода:
<div class="wrapper">
<div class="item">...</div>
<div class="item">...</div>
<!-- More items here -->
</div>
CSS:
.item {
display:inline-block;
vertical-align:top;
height: 300px;
width: /* depending on the image ratio */
}
Теперь я знаю, как сохранить пропорции элемента для заданной ширины (см here или here). Но поскольку мои DIV должны иметь одинаковый рост, как я могу сохранить соотношение сторон и изменить только ширину?
Одним (не очень хорошим) решением было бы вставить пустое изображение и изменить его размер до нужных размеров.
Проблема: при изменении размера окна высота всех DIV будет меняться, поэтому просто рассчитать ширину недостаточно. Я мог бы пересчитать ширину с помощью Javascript, но я предпочитаю простую версию CSS (если возможно).
Итак, вот мой вопрос: Как я могу сохранить соотношение сторон для элемента для заданной высоты только с помощью CSS?
Благодаря
Возможный дубликат [Поддерживать пропорции div в зависимости от высоты] (http: // stackoverflow.com/questions/23789143/maintain-aspect-ratio-of-a-div-accord-to-height) –
Спасибо за вашу ссылку, но в моем примере DIV имеют фиксированную высоту. – uruk