直接操作style属性可动态设置内联样式,如element.style.color = "red";2. 推荐使用classlist增删类名以切换预定义样式,利于维护;3. 可动态创建style标签并插入css规则,适用于批量样式控制。
通过javaScript动态控制html元素的css样式,是实现网页交互效果的核心手段之一。可以直接操作元素的red">style属性,也可以通过修改类名来切换预定义的CSS规则,灵活且高效。
直接修改元素的style属性
每个dom元素都有一个style对象,可以通过它设置内联样式。这种方式适合临时或动态计算的样式更改。
- 语法简单,直接赋值即可,例如:
element.style.color = "red";
- 注意使用驼峰命名法,如
backgroundColor
代替background-color
- 只影响内联样式,优先级较高,但不会覆盖!important声明
示例:
document.getElementById("box").style.opacity = "0.5";
document.getElementById("box").style.borderRadius = "10px";
通过className控制CSS类
更推荐的方式是预先在CSS中定义好样式类,然后用javascript切换类名。这样结构清晰,易于维护。
立即学习“前端免费学习笔记(深入)”;
- 直接赋值
className
可以替换整个类列表 - 使用
classList
方法更灵活,支持增删改查 - 适用于主题切换、状态变化等场景
示例:
const el = document.getElementById("menu");
el.classList.add("active");
el.classList.remove("hidden");
el.classList.toggle("open");
动态创建和插入CSS规则
在需要批量控制或运行时生成样式时,可以操作CSSOM(CSS对象模型)动态添加样式表。
- 创建
<style>
标签并插入头部 - 使用
sheet.insertRule()
添加具体规则 - 适合组件化开发或皮肤系统
示例:
const style = document.createElement("style");
document.head.appendChild(style);
const sheet = style.sheet;
sheet.insertRule(".highlight { background: yellow; }", 0); 基本上就这些常用技巧。合理选择方式能让代码更清晰,性能更好。