Я делал так: при клике добавлял класс на этот элемент и в скрипте проверял существует ли этот класс и если нет, то выполнял действие. После того как действие закончилось, этот класс удаляется.
В теории так: определяете через js нужный браузер, вешаете класс на body (например, .chrome), а затем в css пишите правила, ориентируясь на этот класс (типа, .chrome a { color: #f0f; })
1. device-pixel-ratio — плотность пикселей. Если вкратце, то использовать это можно лишь при необходимости. В основном пригождается для картинок, чтобы они выглядели четкими.
2. Посмотрите как реализованы контрольные точки в Бутстрапе, в большинстве случаев их достаточно. Т. е. реализуется не под бренд, а просто под ширину экрана.
Знаю один неудобный недостаток — на мобилках если задать height: 100vh, то все-равно будет полоса прокрутки, т. к. в этом случае не учитывается высота панели браузера, которая имеет свойство скрываться при прокрутке.
Вдруг кому пригодится, написал свой плагин модальных окон Картонбокс: cartonbox.constlab.ru
Основное отличие от существующих подобных плагинов (даже тех, что описаны выше) — правильная работа скролла на любых устройствах, включая мобильные. При открытом модальном окне основное содержимое страницы, если оно имело полосу прокрутки, не прокручивается и никак не реагирует на скролл колесом мыши или на нажатие кнопок прокрутки на клавиатуре.