Я ищу способ зарезервировать место для изображений в моем макете до их загрузки.
Я делаю это, добавляя свойства width
и height
к моим img
.
Это работает как ожидалось:
img {
display: block;
border: 1px solid tomato;
}
<img src="" width="300" height="400" alt="">
Но в моем css я хочу ограничить свое изображение max-width
.
Чтобы сохранить соотношение сторон изображения, Мне нужно установить height: auto
. Но если я сделаю это, высота изображения рухнет:
img {
display: block;
border: 1px solid tomato;
max-width: 200px;
height: auto;
}
<img src="" width="300" height="400" alt="">
Есть ли способ заставить браузеры соблюдать соотношение сторон, которое можно рассчитать по моим html атрибутам?
Это все еще кажется проблемой. Firefox и Chrome теперь поддерживают внутреннее сопоставление ширины и высоты с соотношением сторон . Это делает именно то, что мне нужно.
Одна деталь реализации, которую я заметил, хотя: на изображении должна быть установлена src
, чтобы он работал. Пример, который я привел, кажется, помечает изображение как полностью загруженное и снова игнорирует соотношение сторон.
Так что для подхода с отложенной загрузкой нам нужно добавить изображение-заполнитель в src
, который имеет правильное соотношение сторон, чтобы оно работало.
Несмотря на то, что в настоящее время это решение работает для chrome и firefox, я все еще ищу решение, которое также поддерживает старые браузеры и сафари. (хотя IE не нужно)