Писать под конкретный браузер - ошибка.
Писать нужно, учитывая возможность отсутствия поддержки той или иной функции.
В css для этого существует директива
@supports {}
В javascript свои методы определения поддержки и наличия фич. Основой кейс сводится к проверке наличия необходимого объекта в глобальной области видимости (window в браузере). Так работает большинство полифилов.
Вроде такого:
if (!("classList" in document.documentElement)) {
// Пишем свою реализацию
}