CSSStyleDeclaration 上不存在属性、cssText
迪丽瓦拉
2025-05-28 04:19:20
0

场景

用 ts 给某个 dom 元素增加样式的时候,有时会报错:

window.onload = function () {document.body.style.zoom = 0.5;
};

类型“CSSStyleDeclaration”上不存在属性“zoom”

这个 style 就是“CSSStyleDeclaration”类型的,但是 TypeScript 检查他类型的时候发现 style 没有 zoom 这个属性

那如何把 zoom: 0.5 嵌到 css 样式中呢

解决:cssText

cssText 也是 style: CSSStyleDeclaration 的一个属性,是将 css 压缩成一行之后的结果

style = {width: "100px";height: "200px";cssText: "zoom: 50%;border:1px solid red"
};
  1. cssText 里可以有多个属性
  2. cssText 权重比 style.xx 高
    1. 即使将 style.xx 写在 cssText 后也是如此
    2. 可能是因为 css 解析的时候是最后解析 cssText 的,将它 Parse 成 Json 缀到后面的
  3. 为避免 cssText 值被覆盖,应使用 cssText+=…,而非 cssText=

相关内容