Отличный и мощный способ проверить, доступна ли функция CSS, - это использовать функцию CSS.supports
JavaScript:
if (CSS && CSS.supports && CSS.supports("position", "sticky")) {
// awesome: position:sticky is supported on this browser!
} else {
// fallback: I cannot rely on position:sticky!
}
Я надеюсь, что это ответ на ваш вопрос, но я думаю, что это Стоит отметить, что если у вас возникнет соблазн использовать CSS.supports()
, вы должны хотя бы рассмотреть возможность реагирования на нехватку функций, просто используя только CSS. Хотя JavaScript - это отличный способ внести динамические c изменения на страницу, но часто вам даже не нужно писать что-либо, чтобы ваша страница реагировала на отсутствие функции (например, залипание).
Например
/*
...
Basic styles for old browsers that don't support sticky go here.
...
*/
@supports (position:sticky) {
/* Overrides to the above styles for modern "sticky" browsers go here */
}
И даже тогда вам часто даже не нужно go это воображение. Например, предположим, у вас есть навигационная панель, которую вы бы хотели, чтобы она была position:sticky
, если это возможно, но в противном случае просто position:absolute
. Даже если некоторые браузеры не понимают sticky
, вы можете сказать:
.my-nav-bar {
/* The fallback goes first */
position: absolute;
/* This 'enhancement' is ignored if not understood, */
/* but overrides the previous value if the browser supports it. */
position: sticky;
top: 50px;
/* ... etc ... */
}