5

変数を負にする方法を見つけようとしています。right: calc(0-var(--skyve-bredde));少し試してみましたがうまくいきませんでした。これは変数です:

#drawer, #burger{
    --skyve-lengde:50%;
}

値はrightおよびwidth属性で使用されます。どんな助けでも大歓迎です、ありがとう。

4

2 に答える 2

6

問題のコードが機能しない理由: (引用されたテキスト内のすべての強調は私のものです)

right: calc(0-var(--skyve-bredde));

上記は2つの理由で機能しません。それらは次のとおりです。

  • CSScalc()構文に従って、+ または - 演算子の前後にスペースが必要です。

    さらに、+ 演算子と - 演算子の両側に空白が必要です。( * および / 演算子は、周囲に空白なしで使用できます。)

  • CSS calc の型チェックによると、0 は a で<number>あり、他の値は<percentage>です。、などのwidthプロパティの場合、は型を取るため、以下のチェックは (値が同じ型ではないため) 失敗し、式は無効として扱われます。leftright<percentage><length>

    + または - で、両側が同じ型であること、または片側が <number> でもう一方が <integer> であることを確認します。両側が同じタイプの場合、そのタイプに解決します。一方が <number> で、もう一方が <integer> の場合は、<number> に解決されます。

    演算子が上記のチェックに合格しない場合、式は無効です。


ソリューション:

  • 上記の回答とコメントで既に述べたように、calc(var(--skyve-bredde) * -1)動作し、期待される出力が生成されます。
  • または、どちらかの側で同じタイプを交互calc(0% - var(--skyve-bredde))に使用することもできます。

:root {
  --skyve-bredde: 50%;
}
div {
  position: absolute;
  right: calc(0% - var(--skyve-bredde));
  background: red;
}
<div>Some text</div>


変数の前に否定記号を追加する:

仕様に関する私の理解が正しい場合、これは機能しません。例 11 の 2 番目のコード ブロックと説明を参照してください。それによると-var(--skyve-bredde)- 50%有効な値ではないため、無効なプロパティ値エラーが発生します。

:root {
  --skyve-bredde: 50%;
}
div {
  position: absolute;
  right: -var(--skyve-bredde);
  background: red;
}
<div>Some text</div>

于 2016-11-14T09:13:24.187 に答える