検索

ホームページ  >  に質問  >  本文

HTMLElement.style を呼び出そうとすると、背景短縮プロパティの値が正しく展開されません。

<p>要素のスタイルには、背景の短縮宣言を含むいくつかのインライン CSS 宣言があります</p> <pre class="brush:php;toolbar:false;"><style> :根{ --bg-white: rgba(255, 255, 255, 0); } </スタイル> <div style="background: var(--bg-white); ... "></div></pre> <p>しかし、HTMLElement.style を反復処理すると、短縮プロパティが誤って展開されているように見えます</p> <pre class="brush:php;toolbar:false;">for (Array.from(target.style) の const 宣言) { const 値 = target.style.getPropertyValue(宣言) console.log(`${宣言}: ${値}`) }</pre> <p>これにより、MDN の HTMLElement.style ドキュメントに従って <code>background-color: var(--bg-white)</code> が出力されるはずですが、<code>background-color: が表示されます。 ' '</code> </p> <ブロック引用> <p>展開された略語プロパティ。 style="border-top: 1px Solid black" が設定されている場合、通常のプロパティ (border-top-color、border-top-style、border-top-width) が設定されます。 </p> </blockquote> <p>この状況に遭遇した人はいますか? </p>
P粉269530053P粉269530053480日前495

全員に返信(2)返信します

  • P粉413307845

    P粉4133078452023-09-04 20:05:48

    Array.from(target.style) を使用して target.style のデフォルトのイテレータを取得する際に問題が発生しました。背景プロパティは含まれません。仕様によれば、速記プロパティはそのさまざまな部分に拡張されています。

    すべてはコードで説明されています。

    コメントでヒントをくれた @t.niese に感謝します。

    リーリー

    返事
    0
  • P粉436410586

    P粉4364105862023-09-04 17:12:59

    HTMLElement.style を使用すると、style 属性を介して (計算ではなく) 直接適用されたものが返されます。

    この場合、ブラウザはバックグラウンドの var(...) が何を解析するのか、var(--bg-white); が何を解析するのかを知る方法がありません。 background-... プロパティが含まれます (変数の内容は var(...) ステートメントがある場所に配置され、結果の値が解析されます。

    したがって、たとえば

    --bg-white: content-box Radial-gradient(crimson, skyblue); がある場合、--bg-white は実際には Multiple に影響します。プロパティ。

    返事
    0
  • キャンセル返事