CSS変数を設定する際にcalc()を使用する動作が不思議です。CSS変数のCSS calc()の動作
例:
#test {
--halfWidth: calc(100%/2);
}
は今、#test
要素ならば、私は--halfWidth
変数が250ピクセルに設定することを希望、div
は、広い500pxなどだったと言います。
しかし、他の場所で使用されているvar(--halfWidth)
コードでは、250px
の代わりにcalc(100%/2)
文字列が表示されます。つまり、要素Aの幅の半分ではなく、要素Bの幅の半分として単にwidth: var(--halfWidth);
を設定するだけなので、要素Aの計算を使用して後で要素Bで使用することはできません。が定義された。
私はこの動作のドキュメントを探すためにウェブを精査しましたが、これまで空白が描かれています。
理想的には、2つのバリエーションで利用可能であるべきCALCを使用してCSS変数を設定:
-されると、いずれかに、文字列変数の置換をバー単に文字列に落下、ちょうどこの例のように働いて- 一つの変種。
- 2番目の変種では、calc()は単純に文字列を置き換えるのではなく、計算結果を返します。
これを行うには?むしろ実際の実装をそれに適した人に任せておきたいと思いますが、1つの可能性はeval()
のようなものでしょう。 eval(calc(100%/2))
のように結果は250px
となります。
とにかく、誰かがこの動作に関する実際のドキュメントを持っている場合や、代わりに上記の例を得て結果を得る方法の解決策があれば、私はすべて耳にします!
編集:ちょうどFYI、私はこれが答え原因答えるためにかかわらず、質問の一種であるhttps://drafts.csswg.org/css-variables/
サイドノート:なぜこのようなタスクにLESSまたはSASSを使用しないのですか? – Justinas
私は@Justinasに同意しますが、SASSはもっと自然です。 –
特に仕様の2.2節を見てきましたか? – BoltClock