Как указать ширину и высоту изображения, сохраняя при этом его отзывчивость?

При использовании srcset для адаптивных изображений код выглядит примерно так:

<img 
src="dog.jpg" alt="a dog" 
srcset="dog-800.jpg 800w" 
sizes="(min-width:1000px) 800px, 80vw">

Итак, теперь, когда я запускаю маяк для этой страницы, он говорит, что у изображения не указаны ширина и высота, что вызовет CLS.

Ок, понятно, теперь нужно указать ширину и высоту... Теперь код выглядит примерно так:

<img 
src="dog.jpg" alt="a dog"
width="800px" height="440px" 
srcset="dog-800.jpg 800w" 
sizes="(min-width:1000px) 800px, 80vw">

Но теперь, после указания ширины и высоты этого изображения, srcset не работает (указанные ширина и высота перезаписывают мои правила srcset).

Итак, мой вопрос заключается в том, как указать ширину и высоту этого изображения, одновременно сохраняя его отзывчивым с помощью srcset?

Спасибо за помощь.

Для справки, я хочу сделать что-то вроде этого: Перейдите на эту страницу: https://web.dev/debug-web-vitals-in-the-field/ Затем проверьте изображение на этой странице. Посмотрите, как они указали ширину и высоту и использовали srcset одновременно с тегами img.


person jitesh    schedule 05.04.2021    source источник


Ответы (4)


Я только что получил ответ на эту проблему. Я исправил это путем дополнительных наблюдений и исследований. Я подумал поделиться им с другими, чтобы помочь им, если они когда-нибудь столкнутся с этим. Окончательный код для адаптивного изображения с атрибутами ширины и высоты будет выглядеть так:

<img 
src="dog.jpg" alt="a dog"
width="800" height="440" 
srcset="dog-800.jpg 800w" 
sizes="(min-width:1000px) 800px, 80vw">

Я просто удалил px из размеров (атрибут ширины и высоты), и все, теперь все работает нормально.

person jitesh    schedule 17.05.2021

person    schedule
comment
Привет, Виджей, предоставленный вами код вызовет CLS, который не подходит для SEO. Я ищу более дружественный к SEO код. - person jitesh; 05.04.2021

person    schedule
comment
Привет, предоставленный вами код вызовет CLS (сдвиг макета контента), что не очень хорошо для SEO. Я ищу более дружественный к SEO код - person jitesh; 05.04.2021

person    schedule
comment
Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение того, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением, как правило, более полезны и качественны, и с большей вероятностью привлекут положительные голоса. - person corsaro; 05.04.2021
comment
Привет, Сагар, код, который ты дал, тоже не работает. В тот момент, когда я указываю ширину и высоту изображения, оно перезаписывает мои правила srcset. - person jitesh; 05.04.2021
comment
Я думаю, вам нужно указать конкретный размер в пикселях как для высоты, так и для ширины. и ваша работа сделана с этим. И пусть вы получите желаемый результат. Пожалуйста, попробуйте сразу, я думаю, вы получите желаемый результат. - person Sagar R Anghan; 30.05.2021