更好的做法是通过 CSS 类 或直接(通过 DOM)修改 HTML 元素显示?

Better practice to modify HTML element display via CSS classes or directly (via DOM)?

我在标记和样式方面有些经验,但我是前端脚本的新手。

有人可以澄清哪种做法更好(或最好)吗:

直接通过 DOM 修改 HTML 元素显示/行为,还是通过分配和删除 CSS 类 来修改更好?

我自己的看法是,使用 javascript 添加或删除 CSS 类 可能是改变元素显示和/或行为的更优雅的方式,但我想确认在继续之前。

有人可以进一步评论吗?

这是一个非常通用的准则:

使用 classes 来定义一些样式(或者甚至只是一种样式),如果它实际上 意味着 某种东西。例如,如果您希望 JavaScript 将元素指定为选定项,请使用 .selected-item class 并将其设置在元素上。这使您可以在 CSS 文件中进行设计工作。

但是,如果您正在进行一次性修改,尤其是那些涉及计算的修改,例如设置一个元素相对于另一个元素的高度...那么您应该使用那些特定的修改 element.style 对象属性。

总结:如果有意义,请使用 class。一次性的就直接修改属性

事实上,这也适用于基础 HTML。您可以轻松定义 class .center {text-align:center} 并将其应用于居中对齐的元素,因为这不是一次性交易。但是如果你需要一个特定的元素有一些额外的底部边距,使用 style="margin-bottom:20px" 而不是为此定义一个 class。