JavaScript 既可以修改类,也可以修改 style
属性。
相较于将样式写入 style
属性,我们应该首选通过 CSS 类的方式来添加样式。仅当类“无法处理”时,才应选择使用 style
属性的方式。
className
在很旧以前,JavaScript 中有一个限制:像 "class"
这样的保留字不能用作对象的属性。这一限制现在已经不存在了,但当时就不能存在像 elem.class
这样的 "class"
属性。
因此,对于类,引入了看起来类似的属性 "className"
:elem.className
对应于 "class"
特性
classList 的方法:
elem.classList.add/remove(class)
— 添加/移除类。elem.classList.toggle(class)
— 如果类不存在就添加类,存在就移除它。elem.classList.contains(class)
— 检查给定类,返回true/false
。
styleelem.style
属性是一个对象,它对应于 "style"
特性(attribute)中所写的内容。elem.style.width="100px"
的效果等价于我们在 style
特性中有一个 width:100px
字符串。
对于多词(multi-word)属性,使用驼峰式 camelCase
要读取已解析的(resolved)样式(对于所有类,在应用所有 CSS 并计算最终值之后):
getComputedStyle(elem, [pseudo])
返回与style
对象类似的,且包含了所有类的对象。只读