首页 > 解决方案 > CSS 属性集的 DOM 更改语法

问题描述

但是,在 JS 中使用特定语法设置 CSS 属性会被浏览器的首选语法覆盖。我怎样才能避免这种情况?

不好的做法,但是我后来 .split() 属性以获取属性字符串中的单个数字,这在我设置它后更改语法时会导致问题。

例如:

设置属性:

el.style.maskImage = "gradient(linear, left top, right top, 
    color-stop(1,  rgba(0,0,0,1)),
    color-stop(1,  rgba(0,0,0,1))"

浏览器将其更改为:

mask-image: linear-gradient(to right, rgb(0, 0, 0) 100%, rgb(0, 0, 0) 100%);

当我尝试拆分以在属性字符串中查找 int 时,这会导致问题:

el.style.maskImage.split("color-stop")[1].split("(")[1].split(",")[0]

通过不使用整个值(color-stop(.99, rgba(0,0,0,1)))在 webkit 浏览器中部分避免了这种情况,但是它仍然经常弹出,特别是在 Firefox 中。

将代码库转换为这种首选语法为时已晚,那么有什么方法可以强制浏览器使用这个确切的 CSS 而不是切换?

这可能是重复的,因为我不确定这个问题的措辞。香草 Javascript

标签: javascriptcssdombrowser

解决方案


推荐阅读