Java, UX, HTML, CSS, WEB-design

Методы изящного снижения качества медиа-запросов

Краткое описание по статье Методы изящного снижения качества медиа-запросов

Название: Методы изящного снижения качества медиа-запросов . Краткое описание: ⭐ Льюис Найм . Дата публикации: 20.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года


  • Льюис Найман

  • 0 Комментарии

Методы изящного снижения качества медиа-запросов

  • 9 минут чтения

  • Кодирование, CSS, Адаптивный дизайн, Медиа-запросы

Краткое резюме ↬

Медиа-запросы являются третьим столпом в реализации Итана Маркотта адаптивного веб-дизайна. Без медиа-запросов гибкие макеты с трудом адаптировались бы к множеству размеров экрана на сотнях устройств.

Гибкие макеты могут казаться тесными и нечитаемыми на небольших мобильных устройствах и слишком большими и громоздкими на больших широкоэкранных дисплеях.

Медиа-запросы позволяют нам адаптировать типографику к размеру и разрешению устройства пользователя, что делает его мощным инструментом для создания идеального опыта чтения.

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

Дальнейшее чтение на SmashingMag:

  • Абсолютное горизонтальное и вертикальное центрирование в CSS
  • Как использовать медиа-запросы CSS3
  • Отзывчивый веб-дизайн с физическими единицами измерения
  • Логические контрольные точки для адаптивного дизайна

Еще после прыжка! Продолжить чтение ниже ↓

Это зависит

Если вы ищете более честный и правдивый ответ практически на любой вопрос о веб-дизайне и удобстве использования, вот он: это зависит от обстоятельств. — Джереми Кит

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

Мобильный прежде всего

Выбранная вами реализация медиа-запросов будет иметь большое влияние на то, как вы решите эту проблему. Адаптивный дизайн для мобильных устройств — это процесс создания макета для мобильных устройств, а затем постепенного изменения макета по мере того, как становится доступно больше места на экране. Это гарантирует загрузку только минимально необходимых файлов и делает мобильное решение легким. Преимущество Mobile first заключается в том, что он обеспечивает хороший запасной вариант для мобильных устройств, которые не поддерживают медиа-запросы, таких как старые устройства BlackBerry, Opera Mini и Windows Mobile. Эти устройства просто видят самую простую компоновку, и от разработчика не требуется дополнительной работы. Идеал!

Техника 1: ничего не делать

Иногда ленивый подход является лучшим подходом. Это делает ваш код легким и удобным для сопровождения, а также сокращает ненужную обработку на стороне клиента. Некоторые старые браузеры запускают Javascript как собака, а старые мобильные телефоны с трудом запускают Javascript с интенсивным использованием. Проприетарный браузер, не поддерживающий Webkit, в большинстве моделей BlackBerry может занимать до восьми секунд только для анализа библиотеки jQuery. Если у вашего проекта длинный хвост пользователей с маломощными мобильными устройствами, то, возможно, вам достаточно мобильного подхода.

Слон в комнате — это Internet Explorer для настольных компьютеров. С решением, ориентированным на мобильные устройства, на больших экранах контент будет отображаться в одном столбце, что приведет к болезненному чтению для пользователя, намного превышающему установленный максимум для удобства: от 50 до 75 символов. Возможно, стоит установить max-width свойство в вашем основном контейнере, а затем вверх, что max-width в медиа-запросе.

#container {
 _width: 460px; /* Take that, IE6! */
 max-width: 460px;
}

@media only screen and (width) { /* A quick and simple test for CSS3 media query support. */

#container {
  max-width: 1200px; /* Add the real maximum width here. */
 }

}

Ничего не делать, если…

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

Пример: jQuery Mobile («Любое устройство, не поддерживающее медиа-запросы, получит базовый опыт C-grade»).

Метод 2: Условные таблицы стилей IE

Удивительно, но при изучении этой статьи я обнаружил, что это самая популярная техника, используемая на адаптивных веб-сайтах. Вместо поддержки полифиллов для медиа-запросов вы просто вы просто загружаете дополнительную таблицу стилей только для Internet Explorer загрузите ту же таблицу стилей, которую вы обслуживаете, в браузеры, которые понимают мультимедийные запросы для Internet Explorer. Для подходов, ориентированных на мобильные устройства, это обычно влечет за собой загрузку базовой таблицы стилей, которая настраивает макет с несколькими столбцами для больших экранов. Джереми Кейт подробно описывает этот подход в своем блоге. Он также добавляет условие, которое не загружает таблицу стилей для мобильных версий IE. Лукавый.

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

С другой стороны, этот метод потенциально может ухудшить ремонтопригодность, требуя от вас поддержки таблицы стилей с дублирующимся содержимым. Он также добавляет еще один HTTP-запрос для пользователей IE, которого следует по возможности избегать.

Я удивлен, что Джереми Кит поддерживает эту технику. Человек, заявивший со сцены, что перехват пользовательских агентов — это «отродье сатаны», использует решение, нацеленное исключительно на один браузер. Имейте в виду, что это не работает с браузерами, которые не поддерживают медиа-запросы CSS3. Но это может быть вполне приемлемо в ситуациях, когда не требуется поддержка других устаревших браузеров.

Используйте условные комментарии IE, если…

  • Вы используете рабочий процесс, ориентированный на мобильные устройства;
  • Ваши медиа-запросы достаточно просты, чтобы их можно было включить в одну таблицу стилей;
  • Для настольного Internet Explorer требуется макет с несколькими столбцами за счет скорости;
  • Вам не нужно поддерживать длинный хвост устаревших настольных браузеров.

Пример: Huffduffer, подход, ориентированный на мобильные устройства, с дополнительным столбцом для экранов с шириной экрана более 480 пикселей.

Пример бонуса: Проектирование с использованием данных за пять простых шагов. Я люблю этих парней.

Метод 3: Обход условий мультимедийного запроса

В 2007 году в блоге разработчиков Opera была опубликована статья, в которой подробно описывалось безопасное использование медиа-запросов. Это помогло проложить путь к использованию медиа-запросов CSS3, представив исследование о правильном способе их написания, способе, который не позволяет браузерам применять содержащий CSS, когда они не понимают медиа-запрос.

… Браузеры вроде IE.

Но что, если с мобильным подходом это именно то, что нам нужно? Что, если бы мы написали наши медиа-запросы так, чтобы содержащий CSS применялся IE безоговорочно. Тогда мы могли бы иметь полный макет рабочего стола без каких-либо дополнительных таблиц стилей, которые нужно загружать или поддерживать.

@media screen, all and (min-width: 300px) {
    div {
        background: blue;
    }
}

Как говорится в сообщении в блоге:

Теперь это не тот случай, когда IE не применяет содержимое запроса. Он теперь не понимает вторую часть (all and), поэтому он игнорирует это и с радостью применяет содержимое запроса…

Обход условий мультимедийного запроса, если…

  • От вас требуется только поддержка современных смартфонов,
  • Вы сначала создаете мобильные устройства и вам требуется макет рабочего стола в IE,
  • Время загрузки и ремонтопригодность должны быть сведены к минимуму.

Техника 4: Respond.js

Облегченный полифилл Скотта Джела Respond.js предлагает преимущество для браузеров, которые не поддерживают медиа-запросы CSS3. Его можно сжать до 1 КБ, и он быстро анализирует файлы CSS, не требуя никаких дополнительных библиотек.

Помимо зависимости от JavaScript, Respond.js кажется надежным решением для полной поддержки медиа-запросов. Однако за небольшой размер файла и скорость приходится платить. Respond.js никогда не задумывался как полнофункциональное решение. Его цель — предоставить необходимый минимум для работы адаптивных макетов.

Он поддерживает только min-width а также max-width запросы, так что это не правильное решение, если вы хотите использовать device-width, device-height, orientation, aspect-ratio, color, monochrome или resolution. Некоторые хорошие варианты использования здесь не поддерживаются, например, обнаружение устройств с высоким разрешением, таких как iPhone 4, и нецветных устройств, таких как Kindle.

Respond.js не поддерживает запросы на основе em, что делает невозможной достойную поддержку пользовательских настроек размера шрифта (что даже более важно на маленьком экране, чем на рабочем столе). Такие продукты, как Readability и Reeder, подтверждают желание пользователей контролировать и улучшать процесс чтения. Медиа-запросы на основе EM будут становиться все более важными по мере того, как мы движемся к подходу к веб-дизайну, ориентированному на контент, поэтому их стоит рассмотреть.

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

Используйте Respond.js, если…

  • Поддержка рабочего стола — это начальный высокая забота,
  • Вы запрашиваете только ширину и высоту браузера,
  • Вы не хотите запрашивать ширину по ems,
  • У вас не будет проблем с тем, что пользователи, не использующие JavaScript, увидят неоптимизированную страницу.

Пример: Aaron Weyenberg, веб-сайт, ориентированный на рабочий стол, с базовым макетом.

Техника 5: CSS3-MediaQueries-js

CSS3-MediaQueries-js продолжает работу с Respond.js. Он поддерживает весь спектр медиа-запросов, представленных в CSS3. Подход «все, кроме кухонной раковины» отлично подходит для душевного спокойствия разработчика. Просто вставьте его и установите флажок «Поддержка IE».

Но есть и существенные недостатки, которые следует учитывать: этот скрипт не быстрый; он парсит CSS гораздо медленнее, чем Respond.js; и весит он целых 15 КБ.

Профессиональный совет 1

Давайте будем ответственными и загрузим этот файл только в том случае, если браузер на самом деле не поддерживает медиа-запросы CSS3. В противном случае вы зря тратите время и данные. Вы можете использовать Yepnope для загрузки файла размером 15 КБ, если он обнаружит, что медиа-запросы недоступны.

Вот модификация функции Yepnope, которую я написал для теста медиа-запросов Modernizr. Yepnope теперь поставляется в комплекте с Modernizr.

yepnope({
test : Modernizr.mq('@media only screen and (width)'),
yep  : ’,
nope : "https://www.smashingmagazine.com/2011/08/techniques-for-gracefully-degrading-media-queries/css3-mediaqueries.js",
});

Если вам не требуется поддержка устройств, отличных от IE, замените функцию Yepnope более легким условным комментарием.

<!--[if (lt IE 9) & (!IEMobile)]>
 <script src="https://www.smashingmagazine.com/2011/08/techniques-for-gracefully-degrading-media-queries/css3-mediaqueries.js"></script>
 <![endif]-->

Профессиональный совет 2

Если вы сначала создаете для мобильных устройств, то добавьте min-device-width условие для запроса Yepnope определенно стоит. Это предотвратит загрузку здоровенного файла размером 15 КБ на маленькие экраны, которые никогда не будут его использовать. Победить!

Используйте CSS3-MediaQueries-js, если…

  • Вы используете расширенные медиа-запросы, помимо простых условий ширины в пикселях;
  • Вы счастливы выдержать загрузку 15 КБ;
  • Ваша аудитория не включает длинный хвост пользователей обычных телефонов.

Пример: Hicksdesign использует сложные медиазапросы помимо простой ширины и высоты.

В заключение

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

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

Сокрушительная редакция
(аль)




Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Методы изящного снижения качества медиа-запросов

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Кнопка «Наверх»