Новый image-set как 🖼 тег picture в CSS: не только ретина, но и WebP и AVIF

  Рет қаралды 26,112

Вадим Макеев

Вадим Макеев

Күн бұрын

Пікірлер: 149
@Anatoli-bq1pe
@Anatoli-bq1pe Жыл бұрын
Благодарю! Хорошо что сейчас image-set уже отлично поддерживается браузерами)
@FFizmaTT
@FFizmaTT 3 жыл бұрын
Круто. Увидел в видео несколько хаков, о которых даже и не догадывался. Спасибо, Вадим!
@МарияФролова-ъ9ь
@МарияФролова-ъ9ь Ай бұрын
Спасибо тебе, милый человек! За image-set и за вариацию ссылки на карточке. То что нужно вот прям сейчас)
@DolphinArtem
@DolphinArtem 3 жыл бұрын
Не знаю кто вы, я подписался на каналы про программирование, прошел 50 уроков по Java от автора Alishev, тут появились вы... Скажу вам, вы очень приятная личность! Просто очень, очень приятный голос и фейс ))). Вадим, у вас будет свыше миллиона... Да вы и сами это знаете.
@Zagir08
@Zagir08 3 жыл бұрын
Вот конечно ссылка на всю карточку меня немножко удивила 👍 Вроде все логично и понятно. А додуматься ох как сложно. Спасибо за новые знания 😄
@trewerguli1727
@trewerguli1727 3 жыл бұрын
Не ссылка, а ховер на всю карточку
@maximkiselev1554
@maximkiselev1554 3 жыл бұрын
aspect ratio имба!
@demeja16
@demeja16 3 жыл бұрын
Столько хаков в одном видео) Спасибо Вадим!)
@serghiokomolov2339
@serghiokomolov2339 3 жыл бұрын
Друг мой! Ты не даешь мне стареть!
@VIMPdev
@VIMPdev 3 жыл бұрын
Отлично как всегда! Жду про отношение сторон
@demidovmaxim1008
@demidovmaxim1008 3 жыл бұрын
Большое спасибо за выпуск, aspect-ratio очень полезное открытие.
@dudovichenko
@dudovichenko 3 жыл бұрын
Подписался на Патреон в порыве сердечной благодарности. Вадим, делай и дальше свои великолепные видео, помимо знаний я получаю от них эстетическое удовольствие. Ты легендарный!
@pepelsbey
@pepelsbey 3 жыл бұрын
Велком! И спасибо, буду продолжать )
@alinanur6676
@alinanur6676 3 жыл бұрын
Люблю ваши видео, ну очень!
@SL0Tspb
@SL0Tspb 3 жыл бұрын
Как раз сегодня делал карточку из нескольких дивов, и была необходимость сделать всю ее ссылкой. Обернул в тег а, все заработало, но ведь семантически не правильно... а тут пример. коротко и доступно. Спасибо!
@levsonc
@levsonc 3 жыл бұрын
На самом деле нет никакой проблемы обернуть всё в тег a. Спецификация HTML это вполне допускает. Только не забывайте, что внутри a не может быть других a или других интерактивных элементов: кнопок, полей и так далее. (Это может быть неудобно, когда, например, в блоке есть маленькая подсказка. Тогда надо как-то вместе совмещать.) Так что смотрите как вам удобнее.
@pepelsbey
@pepelsbey 3 жыл бұрын
Семантически всё правильно - можно оборачивать карточки в ссылки. Другое дело, что в таком случае в содержимое ссылки попадают лишние элементы из карточки и её описание становится перегруженным для скринридеров.
@Алексей-с3я8е
@Алексей-с3я8е 3 жыл бұрын
Я добавляю ссылку и растягиваю ее абсолютом поверх всей карточки. В итоге ссылке нет лишних элементов + добавляю текст с классом visually-hidden, чтобы ссылка была доступной.
@eldarda
@eldarda 3 жыл бұрын
Помнится задавался вопросом, как сделать в css с картинками то же, что и в html. А вот теперь, наконец, я нашел ответ. Спасибо)
@domestic-wildkat
@domestic-wildkat 3 жыл бұрын
Выглядит круто! Спасибо большое за уроки, много интересного для себя почерпнул)
@parango812
@parango812 3 жыл бұрын
Очень круто! Фишек 5 за одно видео. Пойду играться
@tyortyo
@tyortyo 3 жыл бұрын
Хоть и быстро. Но приятно и понятно. Спасибо
@andreyzhukov2821
@andreyzhukov2821 3 жыл бұрын
Добрый день! Как раз разбирался с картинками для Retina дисплеев Спасибо!
@romanstein13
@romanstein13 3 жыл бұрын
Клёво-клёво, спасибо, Вадим👏 Очень жду видео про aspect ratio.
@yorik2872
@yorik2872 3 жыл бұрын
Вадим, хотел вас попросить рассказать о адаптивной вёрстке с использованием vw и vh. За ранее спасибо!
@luksik0
@luksik0 3 жыл бұрын
Первый раз узнал об Avif сегодня! В восторге от размеров. Теперь жду когда же все браузеры догадаются. Но благо сейчас сафаря webp стал поддерживать
@k-ivan
@k-ivan 3 жыл бұрын
Вадим, это гениально )!
@andreigunderin
@andreigunderin 3 жыл бұрын
Круто! Спасибо! Респект и уважуха.
@mirislamus
@mirislamus 3 жыл бұрын
Спасибо за видео, как всегда все круто и понятно
@ЕвгенийУгланов-ш2л
@ЕвгенийУгланов-ш2л 3 жыл бұрын
это шедеврально))))
@endotub
@endotub 2 жыл бұрын
Спасибо за Ваши ролики, очень интересно и доступно!
@yernut
@yernut 3 жыл бұрын
я всегда создавал отдельный variable для aspect ratio и задавал высоту и ширину через calc. Очень жду видео про aspect ratio теперь)
@EvgenichTalagaev
@EvgenichTalagaev 3 жыл бұрын
Спасибо вам большое за ваш труд! Вы делаете этот мир лучше)
@guestalex
@guestalex 3 жыл бұрын
Вадим, классно, как всегда!
@aquaciti
@aquaciti 3 жыл бұрын
спасибо за видео, очень круто
@НиколайАхметянов-ф4у
@НиколайАхметянов-ф4у 3 жыл бұрын
лучший как всегда!
@my_coolheart
@my_coolheart 3 жыл бұрын
Спасибо за открытие скуша))
@AleksovAnry
@AleksovAnry 3 жыл бұрын
Очень доступно. Приятно слушать. Всё по делу без лишнего мусора. Спасибо за контент!
@hopmnc
@hopmnc 3 жыл бұрын
Спасибо, годно.
@viktor_kost
@viktor_kost 3 жыл бұрын
Я все ещё не могу понять - как на такой превосходный контент да подписано ~30к подписчиков? Желаю роста! Это заслужено! ✊
@pepelsbey
@pepelsbey 3 жыл бұрын
Подпишитесь, станет больше :)
@viktor_kost
@viktor_kost 3 жыл бұрын
@@pepelsbey обижаете) как только узнал - так сразу и подписался)
@katerinaelgina2376
@katerinaelgina2376 3 жыл бұрын
Вау. Круто. Спасибо !
@user-3773
@user-3773 3 жыл бұрын
Спасибо, восхитительно!
@sergreva7192
@sergreva7192 3 жыл бұрын
Супер!
@VladyslavArkhypov
@VladyslavArkhypov 3 жыл бұрын
Спасибо за Вашу работу. Ценно!
@evgenyaliakseenko2228
@evgenyaliakseenko2228 3 жыл бұрын
Отличная подача материала 👍
@zapiski_verstalshika
@zapiski_verstalshika 3 жыл бұрын
Печально что только сейчас на работе разрешили флексы... А этого мне долго на практике не видать) разве что для себя что-то сверстать. Спасибо)))
@Zagir08
@Zagir08 3 жыл бұрын
Привет. Как я понял вы работали на float???!! Зачем!?
@windomizer
@windomizer 3 жыл бұрын
@@Zagir08 Видимо, чтобы жизнь сладкой не казалась :D
@Gogsan
@Gogsan 2 жыл бұрын
супер верстка, хочу быть таким же
@КостянЕрмаков-е9ю
@КостянЕрмаков-е9ю 3 жыл бұрын
Очень спасибо.😁
@a.n.burdin
@a.n.burdin 3 жыл бұрын
👍👍
@evgenenterprises4933
@evgenenterprises4933 3 жыл бұрын
Круто!
@victor_bozhok
@victor_bozhok 3 жыл бұрын
Спасибо большое! Очень полезно и интересно :3
@romannovak375
@romannovak375 3 жыл бұрын
Большое вам спасибо очень интересно
@freeeon29
@freeeon29 3 жыл бұрын
Вот только aspect-ratio до сих пор не поддерживается в Safari, что сводит на нет его использование. На данный момент он есть там только в превью будущей версии. В случае сафари это означает, что пока человек не перейдет на новую версию Mac OS он будет сидеть на старой версии сафари, т.к. там нельзя обновить браузер отдельно от ОС.
@pepelsbey
@pepelsbey 3 жыл бұрын
Вы неправы, Safari всё-таки обновляется на предыдущих версиях macOS. Например, Safari 14 работает на 10.11-10.14, то есть совместим с macOS, вышедшей в 2018 году. Другое дело, что некоторые возможности, которые зависят от самой ОС, могут в браузере отстутствовать: кодеки, форматы шрифтов и графики.
@lvivduncan
@lvivduncan 3 жыл бұрын
6:50 picture -- class?
@TheBubaololo
@TheBubaololo 3 жыл бұрын
11:03 не совсем понял, на юзеров лисы предлагается забить?
@pepelsbey
@pepelsbey 3 жыл бұрын
А вы посмотрите на демку в Firefox: там вполне WebP 2x pepelsbey.github.io/playground/63/
@TheBubaololo
@TheBubaololo 3 жыл бұрын
@@pepelsbey Вадим, вы золотой человек
@artimovskiy
@artimovskiy 3 жыл бұрын
Мода на backgraund-image возвращается или c object-fit что-то не так?
@pepelsbey
@pepelsbey 3 жыл бұрын
Нет никакой моды, есть варианты вставить графику - фоном, элементом, инлайном. Каждый подходит к своему набору сценариев и важно, чтобы в каждом варианте были гибкие инструменты, например, для выбора формата.
@albertrain7093
@albertrain7093 3 жыл бұрын
Здравствуйте Вадим! Спасибо большое, что Вы есть ) Очень многому у Вас научился. Терзает меня один момент касательно способа с псевдо-элементом ссылки. Нуждаюсь в Вашем профессиональном мнении ))) Не ломает ли такой способ доступность для пользователей с мышкой. Ведь нельзя, при желании выделить и скопировать текст ссылки, придеться лезть в девтулзы для этого. Спасибо заранее!
@pepelsbey
@pepelsbey 3 жыл бұрын
Если у вас задача сделать всю карточку кликабельной, то у вас нет выбора - текст будет выделить сложно. Только если пользователь не знает, что можно зажать альт и начать выделение с ним - тогда получится.
@ggg-tq9be
@ggg-tq9be 3 жыл бұрын
Проверил в опере, хроме, лисе и осле, везде отображается кроме ie. Нужно ещё добавить обычный фолбэк background-image: url(...). Вы забыли про это или это массовый протест против ослов?)
@pepelsbey
@pepelsbey 3 жыл бұрын
Да, вы правы, для лучшей совместимости можно добавить ещё и фолбэк для IE
@nir0pilot
@nir0pilot 3 жыл бұрын
Этот хак иногда глючит. Height:auto не отрабатывает и картинки искажаются. Я потупил денёк, и пришёл к выводу: можно убрать width, height, css к картинке и добавить одно css свойство aspect-ratio
@pepelsbey
@pepelsbey 3 жыл бұрын
Ну это не хак, это обычный CSS. Не стоит отказываться от атрибутов width и height, они очень полезны при загрузке - браузер сразу знает, сколько отдать места для картинок, знает их соотношение сторон. Ну и «иногда глючит» звучит как магия, лучше бы разобраться и понять. Может есть демка?
@nir0pilot
@nir0pilot 3 жыл бұрын
@@pepelsbey демки нет, но там использовался js-плагин slick, который, возможно, как-то влиял, и турболинки из rails. при некоторых прогрузках страниц фото решительно деформировались, но не всегда - как фишка ляжет. С вычисленным aspect-ratio pagespeed перестает ругаться на отсуствие width/height, чего я и добивался.
@pepelsbey
@pepelsbey 3 жыл бұрын
Жаль, что вы не разобрались, в чём проблема. Добавлять aspect-ratio в стилях - слишком «далеко», браузеру это нужно понимать в разметке.
@Stanislav-p7y
@Stanislav-p7y 3 жыл бұрын
Спасибо за видео! Почему при background-image: -webkit-image-set( url(../../../assets/images/header@1x.webp) 1x, url(../../../assets/images/header@1x.jpg) 1x) хром подгружает ( смотрю в "Network") header@1x.jpg , почему не header@1x.webp ?
@pepelsbey
@pepelsbey 3 жыл бұрын
Посмотрите внимательнее на синтаксис с MIME-типом и браузерную поддержку, я об этом рассказываю в видео.
@CzarOfScripts
@CzarOfScripts 3 жыл бұрын
Можете объяснить про "двухкратный экран"? Что это значит?
@pepelsbey
@pepelsbey 3 жыл бұрын
Это когда на один логический пиксель приходится четыре физических. Они же ретиновые экраны или HiDPI
@clleoweb4083
@clleoweb4083 9 ай бұрын
А что же делать с lazy load? Как к этой красоте прикрутить отложенную загрузку изображений? При чем нужен правильный lazy, при котором в src будет не пустота а реальное изображение?
@pepelsbey
@pepelsbey 9 ай бұрын
Ценности в отложенной загрузки изображений особенно нет - они и так не блокируют рендеринг, в отличие от контентных. Ну разве что если вам нужно показать какой-то плейсхолдер вместо тяжёлой картинки. Но думаю это вполне можно сделать множественными фонами.
@shurinskiy
@shurinskiy 3 жыл бұрын
Авиф - выкатывает со дворов 😉
@veadev
@veadev Жыл бұрын
Top, Right, Left, Bottom можно заменить одним свойством inset:0;👍
@omnomnom1323
@omnomnom1323 3 жыл бұрын
А в какой программе переводят здесь картинку из png в jpeg?
@pepelsbey
@pepelsbey 3 жыл бұрын
Это Squoosh squoosh.app/, все ссылки всегда есть в описании
@StonHenge
@StonHenge Жыл бұрын
Как вставить image-set в место где использованы множественные фоны? Т.е. у меня две картинки которые нужно прописать в image-set. Не получается. Или это невозможно?
@pepelsbey
@pepelsbey Жыл бұрын
Функция image-set() - это, по сути, замена url(), то есть если вы можете прописать несколько картинок в свойстве background-image через запятую с помощью url(), то аналогично можно и с image-set().
@russianstan
@russianstan 3 жыл бұрын
Очень круто! Но кто поставил дизлайк?
@pepelsbey
@pepelsbey 3 жыл бұрын
Может я сам? 😱
@svet0v
@svet0v 3 жыл бұрын
А что делать с тем, чтобы w3c валидатор не ругался на это свойство?
@pepelsbey
@pepelsbey 3 жыл бұрын
Не использовать CSS-валидатор W3C, он оторван от реальности
@svet0v
@svet0v 3 жыл бұрын
@@pepelsbey а как тогда проверять валидна ли верстка?
@pepelsbey
@pepelsbey 3 жыл бұрын
HTML-валидатор вполне имеет смысл, валидность стилей лучше проверять линтерами, вроде Stylelint
@svet0v
@svet0v 3 жыл бұрын
@@pepelsbey а есть какое-то подтверждение того, что на валидность стилей в валидаторе w3c не имеет смысл обращать внимания, чтобы я со спокойной совестью мог image-set пользоваться?
@СергейСульженко-ф9я
@СергейСульженко-ф9я 3 жыл бұрын
Класс, в can i use показано 96% у данного свойства, так его можно или нет использовать?
@pepelsbey
@pepelsbey 3 жыл бұрын
Конечно! Только с типом пока не получится
@СергейСульженко-ф9я
@СергейСульженко-ф9я 3 жыл бұрын
@@pepelsbey Вадим, а объясните пожалуйста, где брать все эти картинки? Допустим есть картинка, где мне взять эту же картинку в двукратном разрешении? Вопрос может быть элементарный, но я не знаю(
@denisdmitriev4670
@denisdmitriev4670 Жыл бұрын
Вау, открыл для себя много нового, обидно, что всё еще нет никакого прогресса в поддержке image-set
@pepelsbey
@pepelsbey Жыл бұрын
Кажется полная поддержка (как в Firefox) будет в следующей версии Chrome (скоро) и в следующей версии Safari (никто не знает когда, но думаю скоро) caniuse.com/css-image-set
@TamaraNikolaevna
@TamaraNikolaevna 2 жыл бұрын
Вадим, имеет значение расширение картинки jpg или jpeg? У меня в Sqoosh при оптимизации получается расширение только jpg. Большое спасибо за работу.
@pepelsbey
@pepelsbey 2 жыл бұрын
Расширение .jpg совместимо со старыми ОС, есть даже расширение .htm для таких случаев. Но это очень, очень старые ОС, вроде MS-DOS. Так что никакой практической разницы сегодня нет.
@TamaraNikolaevna
@TamaraNikolaevna 2 жыл бұрын
@@pepelsbey Спасибо
@ag_main
@ag_main 3 жыл бұрын
Squoosh все же передавливает фото и качество падает да прописать 2х под респонс
@Beyond-the-transcendent
@Beyond-the-transcendent 2 жыл бұрын
Теперь вопрос если к тэгу img я задаю класс , то получаю что если браузер выбирает изображение из sours то класс и стили css не подтягиваются , class="cover__users-ava" - задаёт позицию абсолют и координаты, если удалить source то всё работает
@pepelsbey
@pepelsbey 2 жыл бұрын
Браузеры выбирают подходящие картинки из source и ставят их в img, так что должно сработать. Попробуйте то же самое, но со ссылкой на CodePen с демкой, чтобы можно было понять, в чём ваша проблема.
@Beyond-the-transcendent
@Beyond-the-transcendent 2 жыл бұрын
@@pepelsbey ладно, сяб, значит просто баг синтаксиса.
@vladislav805
@vladislav805 3 жыл бұрын
"..., кроме Firefox, которым никто не пользуется ..." ачёвсмысле? Я вот только его и использую. Или... я - никто?))
@pepelsbey
@pepelsbey 3 жыл бұрын
Я тоже! Нас двое )
@VladimirMiroshnichenko64
@VladimirMiroshnichenko64 3 жыл бұрын
я в таких случаях говорю так "Есть статистика, а есть погрешность. Так вот вы даже не погрешность" :)
@antonmanin3521
@antonmanin3521 3 жыл бұрын
Вы играли когда-нибудь в майнкрафт?
@pepelsbey
@pepelsbey 3 жыл бұрын
Нет, я плохо понимаю зачем люди играют в компьютерные игры, ведь можно поверстать )
@mrakcw
@mrakcw 3 жыл бұрын
Перезалил видео? Лайк мой куда дел?))) 😂😂😂 Вадим, есть предложение для следующего ролика))) предложения принимаешь? )) 🧙‍♂️🚀🐱‍👤🏍😁🐱‍🏍
@pepelsbey
@pepelsbey 3 жыл бұрын
Перезалил, там ошибка была ( Заявки не принимаю, а идеи выслушаю ;)
@dimovich85
@dimovich85 3 жыл бұрын
Хотел тоже самое написать) я тоже днем хотел видос глянуть, но что-то не давал ютуб
@ProJavaScript
@ProJavaScript 3 жыл бұрын
По поводу "никто не пользуется Firefox": я уже год как использую его как основной браузер, потому что в Chrome у меня лагает KZbin видео качеством выше 720 (внезапно), хотя у меня 1660 super с аппаратной поддержкой всех необходимых кодеков. А в Firefox ничего не нагает, даже 4К. Возможно,проблема в Хроме в том, что у меня включена скорость воспроизведения 2x по-умолчанию, но в FF всё на этой скорости всё прекрасно работает. P.S. Если FF постигнет судьба Opera и Edge, это будет катастрофа :(
@ИванИванов-ч8з8ы
@ИванИванов-ч8з8ы 3 жыл бұрын
авиф ауф
@AntonMorya
@AntonMorya 3 жыл бұрын
Кто дизлайк поставил? Кто этот дивергент))
@oshurek-dev
@oshurek-dev 3 жыл бұрын
зачем нам нужно свойство, которое нигде не работает кроме firefox? и тут я, кто смотрит это видео с firefox....
@pepelsbey
@pepelsbey 3 жыл бұрын
И тут я, который залил это видео в Firefox. Может быть нас всё-таки много? )
@isvladxxe
@isvladxxe 3 жыл бұрын
Firefox единственный кто нормально выводит звук с ютуба на системы 7.1 звука в Linux ( в win вроде костылем можно везде сделать) хром задействует только 2 передних канала ((
@HelgaOz
@HelgaOz 3 жыл бұрын
как всегда, очень понятно и доходчиво! всегда жду Ваши видео! спасибо!
@shittywizzard5727
@shittywizzard5727 3 жыл бұрын
Великолепно, спасибо!
@vitalycooperman3387
@vitalycooperman3387 3 жыл бұрын
Просто отличное видео. Спасибо.
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
Изображения в HTML: picture, srcset, sizes, lazy, форматы webp, avif
22:44
Адаптивные изображения (webp, picture, source)
12:44
Разбор тега picture. Для чего нужен, синтаксис, примеры
12:27
MaxGraph - cайты как страсть
Рет қаралды 5 М.
✅ Кастомные чекбоксы правильно
29:31
Вадим Макеев
Рет қаралды 137 М.
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН