Picturefill 2.0: Отзывчивый изображения и Идеальный Polyfill

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

За последний четыре years 1 (да, это было около четырех лет), мы видели много перестановок изображений в отзывчивого дизайна.Из спокойные дни в обстановке max-width: 100% (абсолютный минимум вы должны делать), чтобы более полнофункциональные реализации JavaScript, такие как Picturefill и Zurb в data-interchange метода, мы потратили много времени спиннинг наши колеса, стучать НАШИруководители и кричать на стене.Я рад сказать, что наш неутомимый путешествие подходит к концу.W3C и браузера производители получили намек .

Государство ответного Images

В поисках Святого Грааля служения правильный образ для пользователя, наше отношение к создателей браузера до сих пор в значительной степени был «Забудьте вы — мы будем делать это сами.” Я не буду, конечно, не исключение.Мы были так внимательны к отзывчивых изображений и подвергались все догадки и испытаний, которые обычно не обнародованы, что мы получили нетерпение (справедливо) и сделал это с JavaScript .

Разница между CSS перехода и отзывчивым изображения, конечно, как они degrade.Если CSS переход не работает, кто действительно заботится?Ваш интерфейс может быть немного нервный, но опыт в целом не очень страдают из-за ваши пользователи все еще будут в состоянии выполнить свою цель и потреблять контент, который они должны .

Это действительно не дело с изображениями.Как новый тег ухудшения изображения?img тег настолько широко, что я не мог даже найти, когда W3C рекомендовала его в качестве стандарта, кроме небольшой справки в HTML 4.01 specification 2 .Замена или даже расширения на img тега будет, как говорят Фрэнк Синатра носить бейсболку вместо Fedora — Вы получите несколько снизились .

Ресурсов Problems

Как реагировать дизайн вырос в популярности, и как средства массовой информации, через которые пользователи потребляют информация стала неуправляемой, мы медленно понял, что img само по себе не собирается сокращать горчицу.Мы начали задавать вопросы, как: “Какой размер экрана пользователя на?” И “Что плотность пикселей на экране?” Эти вопросы топливе наши методы изображения, пока мы не поняли, что размер экрана и плотность пикселей не имеют абсолютно никакого отношения к суммеширина полосы пропускания, чтобы служить огромную высокой четкости изображения .

The RICG began working on the picture element, sharing its work with the W3C along the way.
RICG начал работать на picture элемента, разделяя свою работу с W3C по пути .

Решения получил довольно сложным.Обсуждение picture элемента началась, и группа называется ответная изображений появились сообщество группы (RICG).RICG начал работать на picture элемента, разделяя свою работу с W3C по пути.Результат привел нас к сегодняшнему дню, и это обсуждение все прогрессе, который был достигнут .

Введение srcset

Поскольку большая часть сообщества реагировать-изображения был на борту с picture элементом и с нетерпением жду этого, потому что из великих polyfills, таких как Picturefill, он пошел вперед и выпустила хорошо продуманной и конкретизированы отъезда документ, определяющийто, что называется srcset, который является продолжением стандарта img тега.Да, я знаю, — он чувствует, как он пришел из ниоткуда.Это было также супер-сложный и чрезмерно ограничивает, ограничивая вас значений (подразумеваемых) пиксельных и с помощью microsyntax, что не позволит масштабируемости с медиа запросов в будущем.К счастью, синтаксис созрел в то, что мы имеем сегодня, что довольно надежная рекомендация .

Недавно Андрей Кларк сказал, что лучше когда он tweeted __14 | | 3__13 “Посмотрел на отзывчивым изображения srcset & размеры атрибуты впервые.Вот это да, это сложнее “

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

<img alt="dog" src="dog.jpg" srcset="dog-HD.jpg 2x, dog-narrow.jpg 300w, dog-narrow-HD.jpg 600w 2x">  

Три основные атрибуты в приведенном выше фрагменте: alt, src и srcset.alt атрибут же, как это всегда было;src это запасной, если srcset не поддерживается;и srcset, очевидно, мясо и картофель здесь .

Мы видим три аргумента в srcset.Первый путь изображения.Второй дает информацию браузера о естественной ширины источников, так что он знает, какой ресурс, чтобы служить пользователю (на основе предпочтений пользователя и перекрестных ссылок с в sizes attribute 4 – Я сказал вам, что это сложнее).Последняя часть задает необязательный соотношение пикселей (2x В этом примере определяет образ высокой четкости) .

Одна вещь мне действительно нравится в srcset, что спецификация заявляет, что браузер должен содержать предпочтения изображений распределения для определенных ситуациях пропускной способности.Это означает, что вы не должны беспокоиться о отбывает 2x изображение на экран высокой четкости, если это устройство на Cruddy 3G связи.Предпочтения пользователя должна взять на себя, и браузер будет выбрать подходящий образ, чтобы служить .

Подготовка к pictureElement

После долгих жаловаться нашей новой странной другу, srcset, RICG продолжал работать на picture элемент, который наконец-то мастеринг сцепление с производителями браузеров … Ну, то есть, с Chrome.Предлагаемый синтаксис picture элемент может выглядеть знакомы, потому что мы видели его в основном в первой версии Picturefill, и это не в отличие от, как <audio> и <video> отмечены на .

<picture>
  <source media="(min-width: 600px)" srcset="large-1.jpg, large-2.jpg 2x">
  <img alt="A fat dog" src="small-1.jpg">
</picture>  

Как вы можете видеть, source тег в picture элемента, наряду с нормальным img тегов.Так же, как мы видели, с src 13 ~ в |, img является запасной.В source тега, у нас есть то, что выглядит как СМИ запроса, наряду с srcset атрибута, который содержит те же самые аргументы изображения источника и пиксель-плотность, как и раньше.Это, кажется, как хороший чистый способ популяризации отзывчивые изображения;мы обычно знакомы с синтаксисом, поэтому он должен быть легко принят .

Браузер Support

Атрибут был | ~ 13 поддерживается в Chrome 5 начиная с версии 34. На момент написания, она не поддерживается в другом месте.Mozilla, кажется, работает на реализацию (пальцы скрещенными).Internet Explorer нигде в поле зрения .

picture элемент имеет даже хуже поддержку;это даже не в Chrome пока.Но, как Mozilla с srcset, Google в настоящее время работает над ее реализацией.Если вы можете переварить читая спецификации, я очень рекомендую его.Даже если там не так много сюжета и характер развития довольно слаб, он все еще довольно хорошо читал .

Picturefill 2.0 был создан потому, что встроенная поддержка разумно close.Вы знаете, нам понадобится незыблемую polyfill использовать при времени официально поставляется, так что давайте взглянем на него

Введение Picturefill 2.0

Picturefill 2.0 6 был недавно выпущен как бета, и это вполне большой скачок от версии 1. RICG действительно направлена ​​на создание одна остановка решение для гибкой images.Задача в том, чтобы создать сценарий, который позволяет, разработчик, использовать любую комбинацию из решений в настоящее время стандартизированы, без вздутие живота его до того, что не использует это вовсе бы более легкий .

Представьте себе, polyfilling изображение, как правило, принимать по 2 секунд, чтобы загрузить с помощью файла JavaScript, что занимает 10 секунд, чтобы загрузить — это не имело бы смысла.Picturefill 2.0 позволяет избежать этого, следуя спецификации очень близко (с некоторыми преднамеренного упущения, которые мы обсудим в немного) и позволяя использовать либо srcset 10 ~ или | или комбинацию двух .

Picturefill is an responsive image approach that mimics the proposed picture element using divs. 7
Picturefill это реагировать подход изображения, который имитирует предложенную элемент изображения, используя div ы.( Более version 8 )

В то время как мы не можем достоверно добиться всего в спецификации, используя технологию (например, разумно обнаружения полосы пропускания, которая будет в любом случае настройки пользователя), мы можем, конечно, заботиться о все части, которые предназначены, чтобы быть в HTML (т.е.элементы и атрибуты).Эта версия Picturefill получает нас на один шаг ближе к не нуждаясь Picturefill, который …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.