CSS 変数の設定に calc() を使用した場合の動作に興味があります。
例:
#test {
--halfWidth: calc(100% / 2);
}
ここで、 a などの#test
要素の幅が 500px の場合、変数を 250px に設定しdiv
たいと思います。--halfWidth
しかし、私が知る限り、var(--halfWidth)
他の場所で使用されているコードはcalc(100% / 2)
、250px
. つまり、要素 A の計算を後で要素 B で使用することはできません。たとえばwidth: var(--halfWidth);
、変数が要素 A の幅の半分ではなく要素 B の半分の幅として設定されるためです。定義されています。
この動作に関するドキュメントを見つけようとして Web を精査しましたが、これまでのところ空白を描いています。
理想的には、calc を使用した CSS 変数の設定は、次の 2 つのバリアントで利用できる必要があります。
- この例と同じように動作する 1 つのバリアントは、文字列をそのままドロップするだけで、文字列内の変数の置換を禁止します。
- 単純に文字列を置き換える代わりに、calc() が計算結果を生成する 2 番目のバリアント。
これを達成する方法は?実際の実装はそれに適した人に任せたいと思いますが、1つの可能性はeval()
一種のものです。のようeval(calc(100% / 2))
に結果が得られ250px
ます。
とにかく、誰かがこの動作に関する実際のドキュメント、または上記の例を取得して代わりに結果を生成する方法の解決策を持っている場合、私はすべて耳にします!
編集: 参考までに、 https ://drafts.csswg.org/css-variables/ で仕様を読みました。