场景
用 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"
};
- cssText 里可以有多个属性
- cssText 权重比 style.xx 高
- 即使将 style.xx 写在 cssText 后也是如此
- 可能是因为 css 解析的时候是最后解析 cssText 的,将它 Parse 成 Json 缀到后面的
- 为避免 cssText 值被覆盖,应使用 cssText
+=
…,而非 cssText=
…