Tetapi apabila mengulangi HTMLElement.style, atribut trengkas kelihatan seperti pepijat">
Dalam gaya elemen, saya mempunyai beberapa pengisytiharan CSS sebaris, termasuk pengisytiharan singkatan untuk latar belakang
for (pengisytiharan const Array.from(target.style)) { nilai const = target.style.getPropertyValue(deklarasi) console.log(`${deklarasi}: ${value}`) }Ini sepatutnya mencetak
background-color: var(--bg-white)
mengikut dokumentasi HTMLElement.style pada MDN, tetapi saya mendapatbackground-color: ' '
Sifat singkatan dikembangkan. Jika anda menetapkan style="border-top: 1px Solid black", sifat biasa (border-top-color, border-top-style dan border-top-width) akan ditetapkan.
Adakah sesiapa yang menghadapi situasi ini?
Masalah menggunakan lelaran lalai
Array.from(target.style)
获取target.style
. Ia tidak termasuk sifat latar belakang. Mengikut spesifikasi, sifat trengkas telah diperluaskan ke pelbagai bahagiannya.Semuanya diterangkan dalam kod.
Terima kasih kepada @t.niese atas petua dalam komen.
Jika anda menggunakan atribut
HTMLElement.style
,它将返回通过style
untuk menerapkannya secara langsung (bukannya mengiranya).Dalam kes ini, penyemak imbas tidak mempunyai cara untuk mengetahui di mana pernyataan
background: var(--bg-white);
中的var(...)
将解析什么并它将包含哪些background-...
属性(变量的内容将放置在var(...)
itu dan kemudian nilai yang terhasil akan dihuraikan.Jadi jika anda sebagai contoh mempunyai
--bg-white: content-box Radial-gradient(crimson, skyblue);
那么你的--bg-white
ia sebenarnya akan menjejaskan beberapa sifat.