HTMLElement.style を呼び出そうとすると、背景短縮プロパティの値が正しく展開されません。
P粉269530053
P粉269530053 2023-09-03 21:10:48
0
2
468
<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粉269530053
P粉269530053

全員に返信(2)
P粉413307845

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

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

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

リーリー
いいねを押す +0
P粉436410586

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

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

したがって、たとえば

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート