Как не отправлять изображения на мобильные телефоны семантическим способом - PullRequest
3 голосов
/ 23 января 2012

Как правило, при первом адаптивном / мобильном дизайне мы используем медиа-запросы для отправки разных CSS на разные размеры экрана.

Хороший дизайн может включать стандартное (маленькое) разрешение без каких-либо изображений.

Этого легко достичь при использовании background-image в CSS для ваших изображений, но я не представляю, как вы этого добьетесь, используя семантические <img> теги.

  • Можно ли это сделать с помощью HTML?
  • Допустимо ли использовать CSS для всех ваших изображений?

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

Примечание: Решения JavaScript неприемлемы.

Справочное изображение

Example image

Ответы [ 3 ]

1 голос
/ 24 января 2012

Нет, обычно не нормально использовать CSS для всех ваших изображений.Изображение в этом случае представляет собой фрагмент данных, так же как заголовок и описание, и семантически должно использовать <img>.При слишком свободном определении вы можете считать все изображения необязательными и, следовательно, сделать <img> устаревшим.«Может не отображаться на всех экранах» - это , а не причина не использовать элемент <img>.

Один из способов взглянуть на это - CSS background-image - для того, чтобы сделать элементы красивее,Элемент все еще должен быть функциональным без background-image, но не таким красивым.Если элемент не виден, потому что у него нет изображения, он не является допустимым элементом.

Свойства отображения и позиционирования CSS предназначены для перемещения объектов и скрытия объектов для различных экранов.

Правильный способ сделать это - display: none;, при условии, что большинство браузеров не загружаютизображение .Если поддержка браузера слабая, прибегните к взлому, например background-image или даже к динамической загрузке с помощью Javascript.

0 голосов
/ 25 января 2012

Относительно возможности предоставления описательных ссылок и использования JavaScript для загрузки изображения для экранов, которые соответствуют вашим критериям:

  1. Для этого создан Lazyloader.js . Цитата из файла readme: «Если вы хотите динамически загружать изображения в зависимости от размеров экрана ...», то это поможет вам с сценариями для этого.

  2. Nettutsplus собрал полезное краткое изложение lazyloader и несколько других хороших скриптов, созданных для подобных вещей .

0 голосов
/ 24 января 2012

Это чисто решение CSS (не уверен в поддержке браузера). Он не использует тег img, но все равно будет семантическим, если содержание имеет смысл без изображения.

Документировано здесь: http://www.w3.org/TR/CSS2/generate.html

Пример здесь: http://jsfiddle.net/davetayls/SuhDj/1/

Лично я предпочитаю маршрут добавления описательных ссылок для просмотра изображения, а затем использовать JavaScript для загрузки правильного изображения, если необходимо (https://github.com/davetayls/jquery.lazyLoader). Таким образом, кто-то на очень маленьком экране / медленном соединении / no-js все еще может получить доступ к изображению, если он хочет в естественном поместье. Если URL-адрес изображения встроен в файл CSS, он бесполезен для пользователя.

...