Почему вы хотите использовать 3 разных исходных файла? Являются ли они просто разными размерами одного и того же изображения, или у вас есть совершенно разные изображения, которые вы хотите показать на каждом размере контейнера?
Если все, что вам нужно, это чтобы изображение соответствовало контейнеру, вы можете справиться с этим, просто установив один исходный файл и используя свойство CSS width: 100%
Пиксели переводятся в единицу расстояния, например, в дюймы *. Устанавливая ширину изображения в единицах%, он автоматически изменяет размер изображения относительно ширины его родительского элемента, в вашем случае <div>
.
Существуют и другие единицы измерения ширины, кроме% и пикс. Проверьте эту статью Единицы просмотра .
Если вы действительно хотите использовать три разных изображения в зависимости от размера контейнера, тогда вам нужно будет перечислить все три источника в списке, как вы делаете сейчас.
Эта статья должна помочь: Отзывчивые изображения В частности, этот отрывок из него:
<img
sizes="(min-width: 400px) 80vw, 100vw"
srcset="examples/images/small.jpg 375w,
examples/images/big.jpg 1500w"
alt="…"
>
Информация в разметке выше дает браузеру то, что ему нужно, чтобы найти> лучшее изображение для него. Браузер знает 1) свой собственный размер области просмотра и 2)> свою собственную плотность пикселей.
Возможно, область просмотра браузера имеет ширину 320 пикселей, и это 1x дисплей. Теперь он также знает, что будет отображать это изображение на 100vw. Так что приходится выбирать между двумя представленными изображениями. Это немного математически.
375 (размер изображения № 1) / 320 (пиксели, доступные для показа изображения) = 1,17 1500 (размер изображения № 2) / 320 (пиксели, доступные для показа изображения) = 4,69
1.17 ближе к 1 (это 1-кратный дисплей), поэтому выигрывает изображение 375 Вт. Он будет пытаться> не go ниже, поэтому 1,3 будет бить 0,99, насколько я понимаю.
* Технически пиксели являются мерой угла, как градусы и радианы, и основаны на предположении о расстоянии, с которого просматривается экран.