Ваша интерпретация спецификации выглядит правильно. Страница MDN тега стиля включает в себя описание атрибута scoped
.
scoped Если этот атрибут присутствует, тогда стиль применяется только к его родительскому элементу. Если отсутствует, стиль применяется ко всему документу.
scope
: Вот рабочий пример этого, который будет работать только в Firefox с 21 по 54.
Out of scope.
In scope (green background).
Out of scope.
В браузере, который не поддерживает атрибут scoped
, эти стили применяются глобально.
:scope
: В дополнение к атрибуту scoped есть также псевдоселектор :scope
, который можно использовать. Эта реализация предлагает ту же поддержку, что и предыдущая.
Outside scope.
In scope (green background).
Outside scope.
Эта опция также добавляет возможное преимущество, если браузер не понимает scoped
атрибут, стили не будут применяться глобально. Единственная проблема заключается в том, что Safari 7+ распознает псевдоселектор :scope
, даже если атрибут scoped
не поддерживается, поэтому преимущество в Safari 7+ потеряно.
Как и раньше, использование тега style
без атрибута scoped
создаст глобальные стили, поэтому он будет только ограничен если вы включите атрибут scoped
.
На данный момент поддержка этой функции выглядит мрачно. CSS scoping поддерживается только в Firefox с 21 по 54. В настоящее время он не поддерживается ни в одном крупном браузере, Firefox, Chrome, Internet Explorer, Safari или Opera. Согласно caniuse.com , из Chrome 20 до 36 было возможно включить поддержку с экспериментальным флагом, но поддержка была удалена .
Попробуйте
varIsType(v, varBoolean);
Тогда легко написать свою собственную функцию VarIsBoolean
function VarIsBoolean(const V: Variant): Boolean;
begin
result := varIsType(v, varBoolean);
end;