Как сохранить соотношение сторон изображения при изменении размера

У меня есть такая ситуация, когда я хочу визуализировать div в виде квадрата, где высота определяет ширину. Пока что единственное решение, которое подходит очень близко, - это использовать изображение размером 1 на 1 пиксель:

<div class = "square">
    <img src = "data:image/gif;base64,R0lGODlhA...RAA7">
</div>

.square {
    display:inline-flex;
    height:100%;
    background:darkorange;
}

img {
    display:block;
    height:100%;
    width:auto;
}

(Источник) JSFIDDLE

Но что бы я ни пытался, при изменении высоты квадрат растягивается по вертикали (больше не квадрат). Вы должны нажать перезагрузить, чтобы снова сделать квадрат. Кажется, это происходит только в Chrome. Хотя в исходный пост предлагается использовать display: inline-flex для .square, похоже, это не работает. Может, я что-то упустил. Какие-либо предложения?

не играясь с вашим кодом, у меня есть вопрос, вы пробовали использовать вместо него width: 100%;height: auto?

cup_of 16.03.2018 23:47

Я сделал этот случай с padding-bottom (%) и пропорциями изображения. Таким образом, вы должны использовать padding-bottom: 100% на .square в вашем случае и position: absolute; остроумие: 100%; высота: 100% на img. jsfiddle.net/0zgh8a4t

Anon 16.03.2018 23:53

Возможный дубликат Поддерживайте соотношение сторон div с помощью CSS

showdev 17.03.2018 00:05

Я обманываю это с помощью некоторого javascript jsfiddle.net/3vjh0s3j.

User 28 17.03.2018 05:57

И это с некоторой css-анимацией jsfiddle.net/aLgd2917.

User 28 17.03.2018 08:30

Спасибо за помощь. Этот вопрос не дублирует Поддерживайте соотношение сторон div с помощью CSS, потому что в этом посте все о соотношении сторон при определенной ширине. У меня есть height, а width нет. Похоже, что только в двух приведенных выше комментариях есть исправление этой проблемы!

Jeanluca Scaljeri 17.03.2018 10:47
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
6
46
0

Другие вопросы по теме