2015-12-21 2 views
0

У меня есть некоторые медиа-запросы в аккуратном использовании ems. При использовании пикселей вы можете сделать что-то вроде:Bourbon/Neat media query in em

@media (max-width: 640px) { ... } 
@media (min-width: 641px) and (max-width: 768px) { ... } 

При использовании EMS такого рода запросов будет выглядеть следующим образом:

@media (max-width: 40em) { ... } 
@media (min-width: 41em) and (max-width: 48em) { ... } 

Как вы можете видеть в первом запросе эм СМИ есть 40 ет и в второй медиа-запрос - 41 em. Если считать, что 1em - 16px, то существует разрыв 16px. Как я могу справиться с этим?

Я могу изменить 41 em на 40 em, но потом у меня есть два медиа-запроса для 40em. Это особенно раздражает при использовании аккуратного в сочетании с внешним контейнером и омега-микшином в обоих медиа-запросах с различными параметрами для омега-микса, например 2n и 3n.

Проблема заключается в том, что медиа-запрос будет удовлетворять 40m как правилам 2n, так и 3n css, что дает некоторые странные макеты. Теперь я могу использовать омега-сброс mixin. Но я читал, что это не очень хорошая практика.

Я что-то упустил? У кого-то есть хорошие идеи для обработки контрольных точек с использованием ems. Я также мог использовать только min-in в медиа-запросе, но тогда мне все еще нужен микшер омега-сброса.

ответ

0

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

EM являются числами и не обязательно должны быть сплошными. Возможно, попробуйте использовать 40em и 40.1em или даже меньше?

+0

Но если я использую 40.1 их, до сих пор существует разрыв между 40 эм и 40.1em. Как это обрабатывается? Есть ли наименьшее значение em? В настоящее время я работал только с минимальной шириной, но для разных омега в медиа-запросах мне пришлось использовать омега-сброс. Если я использую только макс-ширину, то я также вынужден использовать омега-сброс. Или не так ли? – rsdrsd

+0

В пределах пробела ни один из стилей, определенных в медиа-блоках, не будет действительным, поэтому они не будут применяться. Переход на 40.01em звучит достаточно солидно, так как пиксели имеют одинаковую проблему. (Я могу представить случаи, когда браузер имеет половину пикселей, особенно на сетчатке). Единственное твердое решение будет использовать только min- или max- – vandijkstef

0

В настоящее время я использую только минимальную ширину вместо максимальной ширины с мобильным первым подходом. Спасибо за ввод.