为单个样式属性定义一个 setter

问题描述

根据当前的 CSS 规范 CSsstyleDeclaration.setproperty()一个直接写入样式属性的简写。就像下面的代码一样,这两行都具有相同的功能

element.style.color = "#fff";
element.style.setProperty("color","#fff");

尽管这里有一个有趣且不清楚的情况: 我找不到为单个样式属性挂钩自定义设置器的方法,因为这些没有显式设置器。更改 setProperty 方法仅适用于方法 element.style.setproperty() 的直接调用,而不适用于速记(即 element.style.color)。

两者似乎都引用了 CSsstyleDeclaration 接口,但我找不到为特定样式属性(即 element.style.color)定义 setter 的方法

MDN 声明如下:

虽然此属性被认为是只读的,但可以通过直接将字符串分配给 style 属性来设置内联样式。在这种情况下,字符串被转发到 CSsstyleDeclaration.csstext。以这种方式使用样式将完全覆盖元素上的所有内联样式。

据此,更改 csstext 的 setter 可能会拦截特定样式属性的 setter,但它仅适用于内联样式定义本身(即 element.style = 'color:#fff;')

有没有办法为单个样式属性(例如 element.style.color)定义自定义设置器,或者至少为其中任何一个设置通用设置器?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)