Полный контроль над контрольными точками. В CSS и в JS
Всем привет! Недавно меня поругали за то, что для гарантии адаптивности вёрстки я применяю дополнительный класс .js-adaptive
, который я вешаю на элемент body
с помощью JavaScript. К примеру, при ширине экрана 600px
и ниже класс .js-adaptive
вешается на body
, а при ширине 601px
и выше этот класс с body
убирается. В самих стилях при ширине экрана 600px
и ниже я делаю адаптивность вот так:
.block-container { display: block // при ширире больше 600px включаем display: block для .block-container } .js-adaptive .block-container { display: flex // при ширине меньше 600px включаем display: flex для .block-container }
Здесь вырисовывается явный минус. В адаптивном режиме у нас появляется дополнительный класс .js-adaptive
перед всеми селекторами, из-за чего повышается специфичность. Любителям БЭМа такое вряд ли понравится, да и вообще, не очень-то это и хороший подход на самом деле, тем более, что для таких целей у нас есть медиавыражения в CSS.