CSS Пользовательские переменные наследуются, то есть, когда вы определяете переменную в :root
, она применима ко всем элементам.
Когда вы применяете ее к div
, она изменяется для всех элементов div и всего, что находится внутриdiv
.
И поскольку они были унаследованы, значение их родителя / корня не может быть доступным.
Проверьте это ручка для некоторых испытаний.
Один метод , который нужно сделать, это сделать копию переменной и использовать ее.
:root {
--color: blue;
--colorRoot: var(--color);
color: var(--color);
}
div {
--color: green;
color: var(--color);
}
#inside {
color: var(--colorRoot);
}
<div> I am inside a div.<br><span id="inside">I am inside</span></div>
I am ouuuuuutside
Уверен, что это не то, что вы хотели бы сделать.