HTML5 srcset, размеры и художественное направление

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

По-видимому, нет возможности использовать эти атрибуты для выбора альтернативного изображения в зависимости от размера экрана, например, обрезанного или ориентированного по-разному.

Это правильное понимание ситуации? Значит ли это, что нам придется ждать picture элемент, который будет широко поддерживаться для этой задачи?

2 ответа

Решение

Вы правы в том, что srcset а также sizes существуют только для того, чтобы предоставить различные варианты разрешения для "одного и того же" изображения - нет гарантии, какой ресурс будет выбран.

Если вы хотите предоставить обрезанные или пропорционально разные альтернативы, которые гарантированно соответствуют вашим точкам останова, то <picture> это то, что вы ищете.

Что касается поддержки, <picture> полностью поддерживается в Chrome и Firefox, скоро будет поддерживаться в MS Edge и еще не поддерживается в Safari 9. Тем временем вы можете использовать picturefill для добавления этой поддержки в не поддерживающие браузеры.

Лично я использовал w-дескрипторы и srcset для отображения различных изображений в зависимости от ширины доступного пространства.

Это может показаться довольно грубым, но это работает для меня - я редактирую изображение таким образом, чтобы оно стало "ориентированным на искусство" для ряда общих точек останова - превращая его фактически в ряд различных изображений.

Затем, в зависимости от размера экрана агента, браузер почти всегда выбирает изображение, которое я ранее определил как наиболее подходящее.

Для моего подхода я не использовал size, picture или любая другая собственность.

Код, который так прост, как кажется, работает:

<img srcset="room-and-person.jpg 3200w, person-face-only.jpg 1600w" src="image.jpg" alt="an image" />
Другие вопросы по тегам