代码之家  ›  专栏  ›  技术社区  ›  cela

使用javascript为html元素设置样式的不同方法的成本/好处

  •  0
  • cela  · 技术社区  · 7 年前

    我最近在intellij中打开了一个web项目,注意到了netbeans没有显示的javascript中的一些提示/错误。

    错误是:

    > Assigned expression type string is not assignable to type CSSStyleDeclaration
    

    这是它显示的行:

    password.style = "border: 2px solid red";
    

    虽然我通过直接声明我的风格来抑制暗示,比如:

    password.style.border = "2px solid red";
    

    正如有人在评论中提到的,我忘记了还有另一种设置css样式的方法,比如:

    password.setAttribute("style", "border: 2px solid red";);
    

    我的问题是这三个有什么不同?有吗 后果/风险 用第一种方式?有最佳实践吗?

    第一种方法在我所测试的浏览器中起作用。另外,netbeans不将此显示为一个问题/提示似乎很奇怪!

    1 回复  |  直到 7 年前
        1
  •  1
  •   Fissure King    7 年前

    根据 mdn , HTMLElement.style 应被视为只读,而不用于设置样式属性字符串;相反,它是 CSSStyleDeclaration ,正如intellij告诉你的。

    如果您对将样式指定为字符串一窍不通,则可以使用,例如, element.style.cssText = 'border: 2px solid red' 是的。

    编辑:为了进一步缩小对问题的答案,结果是,您不再能够访问CSSSTOLLISTIFY对象,因为它是一种不受支持的设置样式的工具,因此您可能会遇到不一致的结果或代码损坏。