- Почему атрибуты «srcset» и «sizes» в элементе «img» работают не так, как должны?
- 2 ответа
- Не работает атрибут size
- Атрибут sizes не работает для разных источников в srcset
- 2 ответа
- HTML атрибуты: srcset, sizes и тег
- О HTML атрибуте srcset
- О HTML атрибуте sizes
- Единицы измерения для sizes и srcset
- Поддержка браузерами sizes и srcset
- WordPress функции srcset и sizes
- Как отключить srcset и sizes у картинок WordPress
- HTML тег
- 1) Когда используются разные форматы изображений.
- 2) При Художественном оформлении.
- Поддержка бразуерами
- Почему CSS и JavaScript не подходят?
Почему атрибуты «srcset» и «sizes» в элементе «img» работают не так, как должны?
Я пытаюсь понять атрибуты srcset и sizes в теге .
Прежде всего, почему мой код не работает?
Когда я запускаю этот код, изображение mycat.jpg загружается независимо от степени сжатия браузера. Зачем?
Я думал, что этот код должен означать, что, если область просмотра имеет размер 500px , то должно загружаться изображение 600px , которое является изображением кофе, и если нет t one, то должно загрузиться изображение 800px , которое является изображением mycat. Так почему же изображение mycat загружается независимо от области просмотра?
Кроме того, если браузер выбирает, какое изображение srcset загружать в зависимости от близости размеров, то в каком случае загружается изображение src (оранжевое)?
Кроме того, что произойдет, если я добавлю неправильное число для размера разрешения каждого изображения srcset ? В моем примере я описал изображение кофе как 600w , а изображение mycat — как 800w . Что если эти цифры неверны?
Еще я пытаюсь понять, почему атрибут sizes используется здесь для добавления media media ? Разве не для этого нужен атрибут media ?
Объяснения, приведенные на mozilla.developers.org и других веб-сайтах, являются жестокими. Пожалуйста, не копируйте и не вставляйте никакие внешние источники, чтобы объяснить это. Они не. Я видел их всех.
2 ответа
Ваш код не работает, потому что он неправильный, потому что если вы хотите поместить атрибут srcset , вы должны поместить его в тег source , который должен быть внутри тега picture tag . Попробуйте написать код, прикрепленный ниже.
В приведенном выше коде, если разрешение / размер экрана превышает 800 пикселей , будет отображаться mycat.jpg .
Если разрешение / размер экрана составляет от 600 пикселей до 800 пикселей , то будет отображаться coffee.jpg .
И если разрешение / размер экрана меньше 600 пикселей , то будет отображаться orange.jpg .
И если это не сработает, прокомментируйте вашу проблему, я сделаю все возможное, чтобы помочь вам.
Вы должны поместить изображение и источники внутри тега изображения.
Источник
Не работает атрибут size
| Форум » Web-Раздел » Начинающему вебмастеру » Адаптивные изображения: атрибут srcset и sizes (Адаптивные изображения на сайте: создание с помощью CSS) |
Адаптивные изображения: атрибут srcset и sizes
| Дата: Суббота, 2018-07-28, 20:17 | Сообщение 1 | |||||||||||||||||||
| | В Интернете есть несколько отличных руководств в которых подробно объясняется как использовать отзывчивые изображения, используя атрибуты srcset и размеры тега и более сложный, как тег picture. Они обычно объясняют технические детали двух методов реализации реагирующих изображений и их соответствующих преимуществ. Но они редко дают вам советы о том, как использовать теги , особенно с точки зрения выбора размеров картинки для фактической вставки в теги. В революционном продвижение веб дизайна для снимка или картинки, где еще одна вещь, которая, казалось бы отставала. Все происходило до некоторого времени обслуживание разноплановых картинок или изображение на основе реального размера полноценного экрана или просто за плотностью пикселя не было чем-то, что было сделано вообще. Сайты как это обычно бывает в последнее время, полны больших изображений, где часто используемых в полно страничном режиме, что иногда в качестве фона для текста, а также как преобладающий контент на странице. Изображения могут принимать 100% ширины страницы, но в зависимости от выбора дизайнеров они могут принимать переменный процент экрана, в часто этот процент изменяется в соответствии с текущей точкой останова. При применении атрибута srcset на многих изображениях на сайтах я не был на 100% удовлетворен моим выбором размеров изображений, которые были сделаны с использованием нескольких советов, доступных в интернете, и путем ручного тестирования на диапазоне браузеров. Я решил, что хочу действовать на основе некоторого анализа эмпирических данных вместо абстрактного понимания проблемы. Существует несколько факторов, влияющих на управление отзывчивыми изображениями, некоторые из которых: 1. Размер экрана конечного пользователя; Элемент picture показывает большое обещание в изменении этого. Но независимо от того, используется ли элемент изображения вообще, есть два атрибута, которые являются ключевыми в предоставлении реагирующих изображений — srcsetи сопровождающих sizes. Как включить отзывные изображения Существует несколько способов обеспечения гибкого поведения изображений. Один из старых методов (не рекомендуется) — это простой скриптинг, но это приводит к возникновению нескольких проблем. Один, если скрипт определяет, какое изображение загружаться, но сам сценарий загружается после загрузки изображений, указанных в HTML, вы можете в конечном итоге получить два загруженных изображения. Во-вторых, если вы не укажете какое-либо изображение в HTML и хотите загрузить только изображение, определенное сценарием, у вас не будет никакого изображения для браузеров, у которых отключены сценарии. Прежде чем мы рассмотрим, как srcsetна самом деле используется, давайте разобраться в нескольких терминах: При рассмотрение картинки, здесь идет следующее информация на каждое изображение: 1. Это безусловно путь к файлу где находится картинка; Для того, чтобы узнать плотность пикселей, то здесь добавляем х к числу плотности для изображение. Все определяется при при помощи атрибута src, предполагается что имеет глубину 1x. Источник Атрибут sizes не работает для разных источников в srcsetЯ использую адаптивные изображения с атрибутами srcset и sizes в . У меня есть 3 изображения трех разных размеров (200×200, 400×400, 600×600). Мне нужно переключить их для разных размеров области просмотра следующим образом: Для этого я закодировал следующее: Согласно определению, для разных размеров медиа-запрос должен выбирать соответствующее изображение из srcset для каждого размера. Я ожидаю изображения 200×200 для размера max-width: 575px, изображения 400×400 для размера max-width: 991px и изображения 600×600 для размера max-width: 1191px. Но для всех размеров будет загружено только изображение 600×600, без смещения изображений. Как я это решаю? 2 ответаЗнаете ли вы о теге изображения html5? Это помогает загружать альтернативные изображения на основе медиа-запросов и размеров экрана. Измените размер браузера, чтобы увидеть разные версии загрузки изображения с разными размерами области просмотра. Браузер ищет первый исходный элемент, в котором медиа-запрос соответствует ширине текущего окна просмотра пользователя, и выбирает изображение, указанное в атрибуте srcset. Элемент img требуется как последний дочерний тег блока объявления изображения. Элемент img используется для обеспечения обратной совместимости для браузеров, которые не поддерживают элемент изображения, или если ни один из исходных тегов не соответствует. Примечание. Элемент изображения не поддерживается в IE12 и ранее или Safari 9.0 и ранее. На самом деле изображения сдвигаются, но не отображаются, потому что кеш браузера записывает большое изображение. Он правильно реагирует на устройства. Я вижу это, отключив кеш браузера. Источник HTML атрибуты: srcset, sizes и тегПроблема адаптивных (отзывчивых) изображений будоражит умы веб-разработчиков уже давно. Это задача, когда нужно показывать большую картинку на больших экрана и маленькую на маленьких. С недавних пор такая проблема решается через HTML атрибуты srcset и sizes , а также тег . Ниже рассмотрим их подробнее. О HTML атрибуте srcsetsrcset — это «замена» атрибута src . В srcset можно указать один URL или несколько и условие для каждого URL при котором он должен использоваться браузером. Этот атрибут важнее чем src и src будет использован только если браузер не поддерживает srcset . Важно: src атрибут должен быть всегда указан для поисковых роботов. Например такая строка: Обработается браузером так:
Браузеры, не поддерживающие srcset , просто проигнорируют его и возьмут значение src . Тоже самое касается и поисковых роботов, в частности для них src обязателен! В 2021 году поддержка этого атрибута великолепная, смотрите ниже. О HTML атрибуте sizessizes — это «замена» атрибутам width и height . Он устанавливает ширину картинки и условие при котором должна быть выставлена эта ширина. Например: Обработается браузером так:
Обратите внимание, что у последнего размера нет медиа-условия — это значение по умолчанию. Оно будет использоваться, когда ни одно из предыдущих медиа-условий не подошло. Браузер игнорирует все следующие проверки после первой успешной, поэтому будьте внимательнее к порядку объявления проверок. Заметка: если для картинки указать css свойство: max-width:100% , то это свойство перебивает атрибут sizes : т.е. если ширина картинки по sizes больше ширины элемента в котором она расположена — её ширина будет равна ширине элемента (max-width:100%). В общем, все также как и для стандартных width и height атрибутов. Единицы измерения для sizes и srcsetНиже показан весь список возможных единиц измерения, которые можно использовать в атрибутах sizes и srcset .
меню Поддержка браузерами sizes и srcsetWordPress функции srcset и sizesКак отключить srcset и sizes у картинок WordPressДополнительный фильтр, который удаляет атрибуты srcset и sizes в последний момент. в 99% случаев этот хук не нужен, можно использовать на всякий случай HTML тегДля того, чтобы выводить разные изображение в зависимости от устройства (ширины экрана), также можно использовать тег — это обертка для элементов и , которая дает браузеру возможность выбрать источник. тег тут очень важен для роботов. Использование этого тега удобнее чем sizes и srcset в двух случаях: 1) Когда используются разные форматы изображений.позволяет использовать ультра-модные форматы и не бояться за поддержку старых браузеров. Для этого можно указать MIME-тип картинки в type атрибуте, браузер «возьмет» первый поддерживаемый тип (выбор идет сверху вниз разумеется):
меню 2) При Художественном оформлении.Художественное оформление — это прием, когда для разных размеров экрана показываются разные изображения. Например, у нас есть пейзаж с человеком по середине. Для большого экрана такая картинка подходит, потому что можно легко разглядеть человека, а для маленького будет лучше показать кадрированную картинку, на которой человек увеличен. Например у нас есть картинка, которая нуждается в художественном оформлении: Исправим её с помощью Комментарии к коду: media атрибут элемента содержит медиа-условие, используя которое бразуер выбирает какую картинку нужно использовать. Из примера выше, если ширина экрана (viewport) 800 или меньше, то будет выведено изображение первого элемента , если больше — второго. srcset атрибут содержит URL картинки. Здесь также можно указать группу предписаний и добавить атрибут sizes , однако используя тег это вряд ли будет продуктивно. с атрибутами src и alt перед закрывающем тегом , должен быть обязательно указан, иначе изображения не появятся! Этот тег нужен для роботов и когда браузер не может выбрать изображение по указанным условиям. Показывать разные изображение (художественное оформление) можно и через srcset , но через Поддержка бразуерамиПочему CSS и JavaScript не подходят?При загрузке страницы, браузер начинает загрузку изображений до загрузки и интерпритации CSS и JavaScript. Такая эта техника уменьшает время загрузки страницы, в среднем, на 20%. Но она не подходит для создания адаптивных изображений, для этого и был создан srcset атрибут. Например, невозможно было бы загрузить элемент , затем определить ширину экрана при помощи JavaScript и динамически изменить URL картинки. Изначальное изображение было бы уже загружено к моменту загрузки его меньшей версии. Свеженькое и актуальное подъехало. Вот, у меня вопросы.
Изложение, как всегда хорошее, по полочкам, с примерами, в одном стиле.
Нет, все не грузит конечно! Выбирает какое-то одно и грузит. Ширина экрана меняется, выбирает другое и грузит. Как-то так.
Да, тут пожалуй больше удобнее чем выгоднее, и в srcset можно передать разные картинки, но там все же больше подходит разные размеры передавать, потому что там это очень неудобно читается. Источник |