Нет, так, как вы хотите, невозможно ни в CSS, ни в любом из его надмножеств (например, Less и другие).Это всегда HTML, который использует значения из CSS, а не наоборот.Таким образом, вам понадобятся некоторые скрипты для того, что вам нужно.
Вы можете однако передать значения из HTML в CSS через Пользовательские свойства , используя встроенные стили:
.c {color: var(--c)}
.m {margin: var(--m)}
<div class="c" style="--c: blue" >Foo</div>
<div class="m" style="--m: 0 2em">Bar</div>
<div class="c" style="--c: green">Baz</div>
Или даже так:
* {
color: var(--c);
margin: var(--m);
/* etc. */
}
<div style="--c: blue" >Foo</div>
<div style="--m: 0 2em">Bar</div>
<div style="--c: green">Baz</div>
Но этот метод ничем не отличается отличается от стилей простым ванильным методом, то есть:
<div style="color: blue">
... etc.
По сути, он такой же уродливый и не подлежащий ремонту.