Дополнительно
Медиазапросы: Как таргетировать настольные, планшетные и мобильные компьютеры?
Я проводил некоторые исследования по медиа-запросам и до сих пор не совсем понимаю, как нацелить их на устройства определенных размеров.
Я хочу иметь возможность нацеливаться на настольный компьютер, планшет и мобильный телефон. Я знаю, что будут некоторые расхождения, но было бы неплохо иметь общую систему, которую можно использовать для нацеливания на эти устройства.
Некоторые примеры, которые я нашел:
# Mobile
only screen and (min-width: 480px)
# Tablet
only screen and (min-width: 768px)
# Desktop
only screen and (min-width: 992px)
# Huge
only screen and (min-width: 1280px)
Или:
# Phone
only screen and (max-width:320px)
# Tablet
only screen and (min-width:321px) and (max-width:768px)
# Desktop
only screen and (min-width:769px)
Как вы думаете, какими должны быть эти 'точки останова' для каждого устройства?
429
15
IMO это лучшие точки отрыва:
Редактирование: Доработано для лучшей работы с сеткой 960:
На практике многие дизайнеры переводят пиксели в ems, в основном потому, что ems лучше подходит для масштабирования. При стандартном масштабировании
1em === 16px
. Умножьте пиксели на1em/16px
, чтобы получить ems. Например,320px === 20em
.В ответ на комментарий:
min-width
является стандартом в "mobile-first" дизайне, где вы начинаете с проектирования для самых маленьких экранов, а затем добавляете все больше и больше медиа-запросов, работая над все большими и большими экранами. Независимо от того, предпочитаете ли выmin-
,max-
или их комбинации, следите за порядком следования правил, помня, что если несколько правил соответствуют одному и тому же элементу, более поздние правила отменяют более ранние.Если вы хотите указать устройство, то просто напишите
min-device-width
. Например:Для iPhone
Для планшетов
Вот несколько хороших статей:
Дон'т ориентированы на конкретные устройства или размеры!
В мудрость является не ориентированы на конкретные устройства или размеры, но переосмыслить термин 'бряк':
Вы можете использовать responsivepx.com, чтобы найти 'естественной' точки останова, как в 'точки останова мертвых' Марк Драммонд.
Использовать естественные точки останова
В 'контрольных точек' потом стал реальная точка, в которой ваше мобильное конструкция начинает 'прорваться' т. е. перестанет быть полезной или визуально приятным. Если у вас есть хороший мобильный сайт, без медиа-запросы, вы можете перестать беспокоиться о конкретных размерах и просто добавить медиа-запросы, которые обрабатывают последовательно большие видовые окна.
Если вы'повторно не пытается прикрепить конструкцию к точному размеру экрана, этот подход работает на устраняя необходимость для конкретных устройств. В целостность самой конструкции в каждой контрольной точке гарантирует, что он будет держать на любой размер. Другими словами, если меню/содержание раздела/Все, что перестает быть полезной определенного размера, дизайн останова для этого размер, не для конкретного размера устройства.
Увидеть Lyza Гарднер'ы пост на поведенческой точки останова, а также Zeldman'ы пост о Итан Маркотт и как отзывчивый веб-дизайн эволюционировал от идеи intitial.
Использовать семантическую разметку
Кроме того, проще и более семантической структуры DOM с
навигация
,заголовок
,главная
,раздел
,подвал
и др. (избегая мерзости, какдив класс="по шапке"
В с вложенной внутридив
теги) тем легче будет инженеру отзывчивость, особенно избегая плавает с помощью CSS и макет сетки (Сара Drasner'ы сетка генератор является отличным инструментом для этого) и основе для оформления повторного заказа по вашему дизайн задний план.Я использовал этот сайт, чтобы найти разрешение и разработал CSS в соответствии с фактическими цифрами. Мои цифры довольно сильно отличаются от приведенных выше ответов, за исключением того, что мой CSS действительно попадает в желаемые устройства.
Кроме того, располагайте этот отладочный код сразу после медиазапроса. например:
Добавьте этот отладочный элемент в каждый медиа-запрос, и вы увидите, какой запрос был применен.
Лучшие останова рекомендуется на начальной загрузки Twitter
Медиа-запросы для обычных точек останова устройства
Это's не вопрос подсчета пикселей, это's дело фактический размер (в мм или дюймах) символов на экране, который зависит от плотности пикселей. Отсюда и"мин-ширина:" и "Макс-ширина:" и бесполезны. Полное объяснение этого вопроса здесь: https://stackoverflow.com/questions/8785643/what-exactly-is-device-pixel-ratio
на "@СМИ" запросы учитывать пиксели считать и устройство пикселя соотношение, в результате чего на "виртуальное разрешение" и что вам нужно на самом деле учитывать при проектировании вашей страницы: если ваш шрифт 10 ПКС с фиксированной шириной и "виртуальное разрешение по горизонтали" это 300 пикселей, 30 символов будут необходимы, чтобы заполнить строку.
Поскольку есть много различных размеров экрана, который всегда и скорее всего всегда будут меняться лучший способ пойти состоит в том, чтобы ваша точки разрыва и мультимедиа запросы на ваш дизайн.
Самый простой способ пойти об этом заключается, чтобы захватить ваши завершен дизайн рабочего стола и открыть его в веб-браузере. Термоусадочная экран медленно, чтобы сделать его более узким. Наблюдать, чтобы увидеть, когда конструкция начнет, моя душа;перерыв" ПО, или выглядит ужасно и тесно. На данный момент точки останова с медиа-запрос не потребуется.
Это'ы, общие для создания трех наборов медиа-запросы для настольного компьютера, планшета и телефона. Но если ваш дизайн выглядит на все три, зачем заморачиваться со сложностью добавления трех различных медиа-запросы, которые не являются необходимыми. Делать это по мере необходимости!
Поведение не меняется на рабочем столе. Но на планшетах и мобильных телефонах, я разверните шапку, чтобы покрыть большие изображения логотипа. Примечание: использовать маржа (сверху и снизу) столько, сколько вам нужно для вашего роста логотипом.
В моем случае, 60px сверху и снизу прекрасно работал!
Проверяем шапку здесь.
В настоящее время наиболее распространенным является, чтобы увидеть Retina-экранами устройств, другими словами: устройствах с высоким разрешением и высокой плотностью пикселей (но обычно меньше, чем 6 дюймов физический размер). Что's, почему вы должны дисплеем Retina специализированных медиа-запросы в CSS. Это наиболее полный пример, который я могу найти:
Источник: CSS сайт-трюки
Одна дополнительная функция, вы можете также использовать медиа-запросы в Мультимедиа атрибут в `<ссылка> тег.
При этом, браузер будет загружать все ресурсы CSS, независимо от мультимедиа атрибут. Разница в том, что если медиа-запросов СМИ атрибут оценивается в ложные то, что .CSS-файл и его содержимое не будет переадресаций.
Поэтому, рекомендуется использовать медиа атрибут в в `<ссылка> тег, так как он обеспечивает лучший пользовательский опыт.
Здесь вы можете прочитать статью в Гугле про эту проблему https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Некоторые инструменты, которые помогут вам автоматизировать разделение CSS код в разные файлы в соответствии с вашим медиа-querys
Webpack https://www.npmjs.com/package/media-query-plugin https://www.npmjs.com/package/media-query-splitting-plugin
Что PostCSS https://www.npmjs.com/package/postcss-extract-media-query
Я использую следующие действия, чтобы сделать свою работу.