Тёмный

Изображения в HTML: picture, srcset, sizes, lazy, форматы webp, avif 

PurpleSchool | Anton Larichev
Подписаться 41 тыс.
Просмотров 9 тыс.
50% 1

Посмотрим на то, как можно эффективно загружать изображения использую picture, srcset, media и современные форматы webp, avif.
🔗 Ссылки:
🎓 Мои курсы по разработке: purpleschool.ru
💬 Telegram канал с полезными советами:
t.me/purple_code_channel
Разделы видео:
0:00 - Введение
0:12 - img tag
1:05 - Простая загрузка
3:13 - Сжатие изображений imagemagick
7:16 - srcset
12:30 - sizes
13:34 - picture
17:23 - Форматы webp, avif
21:31 - Loading lazy
22:30 - Заключение

Опубликовано:

 

25 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 74   
@PurpleSchool
@PurpleSchool 7 месяцев назад
🔗 Ссылки: 🎓 Мои курсы по разработке: purpleschool.ru 💬 Telegram канал с полезными советами: t.me/purple_code_channel
@yyaahooyy
@yyaahooyy 5 месяцев назад
Привет. Тег picture имеет проблемы со сдвигом макета, по этому для решения подобных задач в мобилке изображение внутри превращают в абсолютно с позиционированный элемент и добавляют родителю высоту паддингом в процентах, вычисляя высоту. Это конечно можно сделать для титульных страниц или картинок имеющих одинаковые пропорции, но для других размеров нужно будет делать индивидуальное прописанное решение, так как атрибут source не имеет встроенных размеров высоты и ширины, как у тега img.
@nickolaizein7465
@nickolaizein7465 7 месяцев назад
Всегда с удовольствием смотрю ваши видео! Детально, но при этом не занудно и легко объясняете! Здорово! Спасибо за ваш труд!
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо!
@arman-6172
@arman-6172 6 месяцев назад
Супер! Спасибо за отличный материал. Дополню: 1. Ретина, мать ее, всегда имейте ее в виду. Особенно, если идете в крупные компании, которые дадут вам старый моник, а потом жалуются фигле у нас на телефонах и макбуках мутные картинки 2. Sizes вроде как раз сам умеет выбрать размер от ретины или нет. 3. В инспекторе есть возможность выбрать dpi под ретину и убить поддержку avif, webp чтоб тестить то что на видео 4. jpg все еще могет для фоток. webp/avif вам помогут избавиться от тяжелых png. Если еще и поиграться с качеством альфа-канала, то там вообще размеры бомба! Советую для теста фри утилиту pym. Jpg еще хорош для opengraph image, соцсети не очень к webp 5. Материал бы добавить по работе с svg и background image 🔥
@PurpleSchool
@PurpleSchool 6 месяцев назад
Супер, спасибо за дополнение
@siteitself
@siteitself 7 месяцев назад
Спасибо! Впервые слышу про lazy и avif формат. Нужно хотя бы раз в полгода смотреть за новинками в html/css
@PurpleSchool
@PurpleSchool 7 месяцев назад
👍
@Phoenix_coding
@Phoenix_coding 7 месяцев назад
PurpleSchool - лучшая школа!
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо)
@user-zi4gy8nk6d
@user-zi4gy8nk6d 7 месяцев назад
Спасибо, отличная подача. Не отходите от этой практики, 1. Объяснить что это и для чего 2. Показать на практическом примере и поэтапно.
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо)
@stassokolov1382
@stassokolov1382 7 месяцев назад
Спасибо за ролик. Идея для следующих курсов/мастер-классов - полноценная работа с изображениями на севере: 1) как загружать 2) как оптимизировать: сжимать, ресайзить 3) ковертации 4) хранение 5) работа с такими изображениями внутри api Большая проблема в том, что бэкенд разработчики вообще не любят заморачиваться с изображениями пока на них не надавит бизнес. Я думаю, что это от незнания. Ну и в целом хотелось бы увидеть хороший и сложный пример в связке с нодой и какой-нибудь sql базой)
@PurpleSchool
@PurpleSchool 7 месяцев назад
Ок, подумаю. Но картинки не надо хранить в базе, они должны быть на CDN
@stassokolov1382
@stassokolov1382 7 месяцев назад
@@PurpleSchool Я знаю, что их не надо хранить в бд, но показать пример с хранением данных о картинках в бд - нужно) Условно статья в блоге. Внутри 7 картинок. У каждой картинки набор: десктоп, планшет, мобилка и все это в трех форматах.
@user-su1xy9vu7l
@user-su1xy9vu7l 7 месяцев назад
Большое спасибо за полезный контент и замечательные практические советы. С нетерпением жду видео про best practises при загрузке на беке с использование Nest, sharp, etc)
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо!
@igorkulibaba7287
@igorkulibaba7287 3 месяца назад
Спасибо, здорово, очень полезное для оптимизации. Я с Вами))
@PurpleSchool
@PurpleSchool 3 месяца назад
👍
@nikolaysmolov8031
@nikolaysmolov8031 6 месяцев назад
Антон, спасибо! Твоя школа - суреская! Всем советую! На ютубе ролики крутые, но друзья! Вы бы видели ролики которые в уроках! Таких тонкостей и так пополочкам расложить материал + еще и с презентацией и лайфкодингом! В общем, рекомендую всем! Антон, так держать! Здоровья тебе, сил и мотивации!
@PurpleSchool
@PurpleSchool 6 месяцев назад
Спасибо большое!
@one-zero-dev
@one-zero-dev 7 месяцев назад
Классный, подробный урок, спасибо!
@PurpleSchool
@PurpleSchool 7 месяцев назад
Пожалуйста
@Elijah_Pavlov
@Elijah_Pavlov 7 месяцев назад
Огонь 🔥
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо!
@Gluhonemou
@Gluhonemou 7 месяцев назад
Очень полезно для адаптива 👍
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо!
@shava1788
@shava1788 7 месяцев назад
До сих пор жду курс по виму. Благодаря тебе я быстрее смог получить работу, поэтому в ближайшее время планирую все спираченные курсы купить. Если выйдет вим, то первым будет он :)
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо! Пока его в основных планах нет, но я думаю, что он может быть доступен в подписке PurpleПлюс. Но сроков нет
@antontsvil245
@antontsvil245 7 месяцев назад
Надо больше подписчиков! Все максимально четко и без воды. Антон, скажите пожалуйста используете ли вы планшет при разработке/проектировании макета UI или, например для других задач связанных с визуализацией?
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо! Планшет я использую только для просмотра RU-vid и сериалов) Ни и конечно как читалку. как рабочий инструмент он особе не прижился.
@antontsvil245
@antontsvil245 7 месяцев назад
@@PurpleSchool понял, ещё вопрос ваш курс по ноде на удеми актуален? :)
@kontorasb2754
@kontorasb2754 2 дня назад
Добрый день! Контент супер, как всегда! Единственное, на инлайн стили media="(max-width:1920px )" валидатор выдает ошибки!!! Как то можно этого избежать!?
@denystopchyi4559
@denystopchyi4559 7 месяцев назад
Спасибо за информацию. Подскажите, а если изображения приходят с сервера, можно как-то похимичить над ними? использую blurhash для отображения блюра пока не прогрузилась картинка.
@PurpleSchool
@PurpleSchool 7 месяцев назад
Если хотите показать placeholder лучше иметь mini картинку, наложить blur и ждать загрузки
@stanislav_tihanov
@stanislav_tihanov 5 месяцев назад
Подскажите, а как быть если нужно эти изображения интегрировать с WordPress, или вы это не учитывали?
@HEX_CAT
@HEX_CAT 7 месяцев назад
❤🎉❤😊
@PurpleSchool
@PurpleSchool 7 месяцев назад
❤️
@user-ed8eb6cx7o
@user-ed8eb6cx7o 7 месяцев назад
Спасибо очень хороший урок. А можно ли урок по форматам картинок?
@PurpleSchool
@PurpleSchool 7 месяцев назад
Спасибо! Подумаю над этим
@danilka6295
@danilka6295 7 месяцев назад
13:50 - вместо тэга picture можно так же использовать атрибут sizes для подгрузки других изображений 21:30 - нативный lazy load отвратителен, во-первых, загрузка изображений будет происходит в зависимости от размеров устройства ( помимо этого важен PPI ), то есть, например, в видео изображение началось загружаться за 1-2 прокрутки экрана, но на телефоне этих же экранов может быть больше, но это не значит, что изображение будет загружаться позже. во-вторых, загрузка изображений напрямую зависит от скорости интернета юзера, в реальности очевидно, что скорость может падать ниже 4G, а в каких-то случаях даже ниже, при такой скорости браузер начнет подгружать как можно больше изображений и разработчик никак не сможет на это повлиять)), что максимально абсурдно ( представьте у себя в голове, что при слабом интернете на телефоне у пользователя начинают загружаться изображения в большем количестве, нежели при хорошем соединение ). я бы не рекомендовал использовать нативный атрибут lazy, ведь есть альтернативы и уже давно придуманы решения данной задачи
@kllpff
@kllpff 6 месяцев назад
Ну так а какие альтернативы-то?) Вы если говорите, то ссылайтесь, людям интересно же.
@danilka6295
@danilka6295 6 месяцев назад
@@kllpff ищущий всегда найдет
@yyaahooyy
@yyaahooyy 5 месяцев назад
зато lazy load будет создавать проблемы для корректного индексирования изображений. По факту гугл предложил решение с граблями. Рекомендую видео - "Нативный атрибут Loading Lazy или что будет, если в канистру говна положить ложечку вкусного варенья"
@konstantinn.
@konstantinn. 7 месяцев назад
А разве первый вариант с srcset (и без picture) не закрывает большинство потребностей? В реальности пользователи не открывают браузер во весь экран, а затем уменьшая его до ширины окна мобильного устройства - такого нет. Собственно первый вариант позволяет подгружать разные изображения в зависимости от разрешения. Собственно вопрос - чем тег лучше . Я находил ряд статей, где с примерами, где делается одно и тоже с обоими тегами, но почему лучше там не указано.
@PurpleSchool
@PurpleSchool 7 месяцев назад
Тем, что если нужна на мобилке совершенно другая картинка в силу изменения layout, мы не сможем сделать на srcset, так как при сжатии у нас останется картинка с desktop
@konstantinn.
@konstantinn. 7 месяцев назад
@@PurpleSchool возможно я не совсем понял и у меня скромный опыт. Попробовал сейчас для 500w (для первого варианта) задать другую картинку. Проверил локально - в мобильное версии открывается эта новая картинка, а если при изменении ширины экрана - соответственно открывается картинка для 900w и наоборот.
@engelknight2059
@engelknight2059 7 месяцев назад
О кайф, спасибо!
@PurpleSchool
@PurpleSchool 7 месяцев назад
Пожалуйста!
@tell.father
@tell.father Месяц назад
Видел, как в sizes записывают медиазапрос, типа sizes="(max-width: 1200px) 1300px". Так и не понял до конца как в этом случае работает связка sizes и srcset...
@nazarkislichenko1172
@nazarkislichenko1172 5 дней назад
Если ширина экрана 1200 то взять фото 1300
@GregoryArt1976
@GregoryArt1976 6 дней назад
странно srcset в source IDE ругается.
@nazarkislichenko1172
@nazarkislichenko1172 5 дней назад
Добавлю еще что sizes тоже принимает media
@PurpleSchool
@PurpleSchool 4 дня назад
👍
@sws_madara9453
@sws_madara9453 7 месяцев назад
можете делать видос про свои настройки vs code
@PurpleSchool
@PurpleSchool 7 месяцев назад
Могу но их там по сути мало
@sws_madara9453
@sws_madara9453 7 месяцев назад
@@PurpleSchool неважно мне очень понравился твой vs code
@user-el8ek4jg9l
@user-el8ek4jg9l 7 месяцев назад
По данным caniuse формат avif поддерживает 85% браузеров, webp 95%
@PurpleSchool
@PurpleSchool 7 месяцев назад
👍
@user-ok6cc6kf3w
@user-ok6cc6kf3w 7 месяцев назад
Контент хороший вот только надо поработать с голосом : ( Думаю хорошо воспринимаете критику)
@bloodjopa
@bloodjopa 7 месяцев назад
Ясно. Ждем видео о том, как изменить цвет текста и добавить перенос строки
@PurpleSchool
@PurpleSchool 7 месяцев назад
Удивлен, что вам оно нужно
@Bugagych
@Bugagych 7 месяцев назад
Информация Ок, звук фе
@milkami95
@milkami95 3 месяца назад
БЫСТРО РАЗГОВАРИВАЕТЕ ПО МЕДЛЕННЕЕ (пожалуйста)
@PurpleSchool
@PurpleSchool 3 месяца назад
ХОРОШО
@ntldrzic
@ntldrzic 7 месяцев назад
А зачем подгружать меньшую картинку, если в кеше браузера уже лежит большая? Мне кажется первой реализации хватает.
@PurpleSchool
@PurpleSchool 7 месяцев назад
Так как мы например хотим показать другую по виду картинку на мобилке.
@danilka6295
@danilka6295 7 месяцев назад
если пользователь впервые заходит с мобильного устройства, никакого изображения в кэше не будет
@Green_Alex
@Green_Alex 7 месяцев назад
Я так надеялся, что он откроет IE в конце, чтобы показать, что там грузиться будет jpg вместо webp...
@PurpleSchool
@PurpleSchool 7 месяцев назад
У меня нет IE(
@biLLie_wiLLie
@biLLie_wiLLie 7 месяцев назад
короче, используйте next js и не пишите эту лапшу
@PurpleSchool
@PurpleSchool 7 месяцев назад
Next image под капотом как раз это использует
@biLLie_wiLLie
@biLLie_wiLLie 7 месяцев назад
​@@PurpleSchoolЯ понимаю, просто выглядит страшно финальный вариант. Когда делаю магазины на Битриксе пишу такое
@---Maksim---
@---Maksim--- 5 месяцев назад
@@PurpleSchoolNuxt Image аналогично, только он дико глючный и не работает из коробки как надо.
Далее
Be kind🤝
00:22
Просмотров 7 млн
ГЕНИИ МАРКЕТИНГА😂
00:26
Просмотров 357 тыс.
Omega Boy Past 3 #funny #viral #comedy
00:22
Просмотров 4,4 млн
Responsive Images Tutorial 2022 - img srcset and sizes
9:54
Be kind🤝
00:22
Просмотров 7 млн