Скажите, у меня есть следующее изображение:
<img src="//picsum.photos/100" srcset="//picsum.photos/100 100w">
Похоже, что атрибут sizes
, который я не включил, по умолчанию равен 100vw
, поэтому маленькое изображение масштабируется до ширины области просмотра.
Что мне делать, если я не хочу этого поведения, но вместо этого хочу, чтобы изображение по умолчанию имело свой собственный размер?
Я бы ожидал, что это изображение по умолчанию будет иметь ширину 100 пикселей на обычном дисплее,и 50px на 2x (сетчатка) дисплее.
Если я укажу свой собственный атрибут sizes
для 100px
, это не решит проблему его отображения на 50px
на дисплее сетчатки.
Причина, по которой мне нужно такое поведение, заключается в том, что в моей системе пользователям разрешено загружать изображения любого размера и размещать их на странице, и я генерирую srcset
с несколькими шагами до максимального размераих изображение, и мне нужен способ, чтобы изображение отображалось с правильной шириной, учитывая размер изображения и плотность пикселей на экране пользователя.
Можно ли добиться такого поведения для изображений с автоматической шириной, используя srcset
?
В своем исследовании я обнаружил эту статью , которая непосредственно касается этой проблемы.Автор рекомендует добавить атрибут width
с максимальным размером изображения, чтобы вернуть то, что атрибут sizes
делает к собственному размеру изображения.Однако он не рассматривает, как заставить это работать с различной плотностью пикселей.