#javascript #css #fallback
Вопрос:
Я хочу использовать
overflow: overlay
в хроме, но
overflow: scroll
в firefox. если я объявлю только значение наложения, то firefox вообще не будет прокручиваться.
Я знаю, что наложение не является стандартным, но сейчас это совершенно неуместно.
мой вопрос в том, какой лучший способ предоставить каждому браузеру значение, как описано.
возможно ли иметь запасной вариант только внутри CSS? не могу думать, что это так, но, может быть, в этом есть какой-то подвох.
если для этого требуется javascript, как бы я проверил доступность значения переполнения?
Комментарии:
1. Просто напишите оба объявления, сначала резервное объявление. Браузеры, которые поддерживают
overflow:overlay
, будут использовать это вместо этого.
Ответ №1:
Вы просто предоставляете их оба, браузер будет использовать последний распознанный.
Или вы можете захотеть применить разные стили для разных браузеров https://www.browserstack.com/guide/create-browser-specific-css
Комментарии:
1. Каскад указывает, что «последнее объявление в порядке документов выигрывает» ( w3.org/TR/css-cascade/#cascade-order ). Это означает, что заказ очень важен. Неверно, что браузер будет игнорировать неверный. Браузер будет гораздо чаще игнорировать те, которые он не понимает. Это означает, что переполнение: прокрутка, за которой следует переполнение:наложение, делает это.
Ответ №2:
Вы можете напрямую указать эти значения в CSS для элемента.
Вы также можете использовать классы для установки этого атрибута. У вас есть три отдельных класса, которые имеют эти стили отдельно, и используйте javascript для присоединения классов, первым из которых являются резервные стили.