javascript - 使用 javascript 设置样式值时的数字或字符串

标签 javascript optimization

有些css值是用数字定义的,比如opacity

我知道在编写 css 时,我会这样做:

#element {
  opacity: 1; /* without a quote mark, just 1 */
}

但是当我要用 javascript 修改 opacity 时,我应该提供什么?只有 0.5"0.5" ?

如果我运行:

typeof document.getElementById('element').style.opacity // returns "srting"

所以我过去常常在修改它的时候提供字符串。 但是有人审查我的代码,建议我提供如下数字:

document.getElementById('element').style.opacity = 0.5

在使用 javascript 修改它时实际应该使用什么类型?字符串还是数字?

最佳答案

所有 css 值都是字符串(从技术上讲,DOMString),因此在您更改它们时也使用字符串更干净。不过,您可以直接使用数字(或其他任何内容),JS 只会为您执行 .toString()

然而,css 中只有少数无单位属性,对于其他数字 Prop ,您需要提供一个单位,而裸数字将是一个错误:

 style.opacity = "0.5" // fine
 style.opacity = 0.5   // fine

 style.width = "3px" // fine
 style.width = 3     // wrong!

所以我养成了习惯,总是在 css 中使用字符串。

此外,document.getElementById('element').style 返回一个巨大的对象,其中包含所有可能的 css 属性及其字符串值:

例子:

alignContent: ""
alignItems: ""
alignSelf: ""
alignmentBaseline: ""
all: ""
animation: ""
animationDelay: ""

在您的浏览器控制台中的一个有效元素上尝试它,您会看到它。 所以我建议使用字符串。

关于javascript - 使用 javascript 设置样式值时的数字或字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745489/

相关文章:

javascript - html5/css3/javascript 中全功能文字处理器的可能性?

c# - SQL 聚合性能 : converting data types, 然后序列化,而不是让它们单独存在。哪个更好?

optimization - OpenGL - glBindTexture - 过早优化?

c++ - 循环中的虚拟调度

javascript - 如何利用 Caspio Datapage 在 Angular 8 应用程序中嵌入/调用外部 javascript

javascript - 如何使用 node.js Q 在链执行期间插入 promise ?

javascript - Logo 和菜单未对齐

性能问题 : CPU intensive work performs better with more concurrency in Erlang

algorithm - 什么是线性规划?

javascript - JS 函数后,innerHTML 属性没有改变