JavaScript改变HTML样式的主要方式

 更新时间:2025年05月07日 11:36:11   作者:我自纵横2023  
JavaScript 改变 HTML 样式的核心是通过操作 DOM 元素的 CSS 属性或 类名 实现动态视觉效果,以下是具体方法与场景解析,需要的朋友可以参考下

一、直接修改元素的 style 属性

通过 DOM 元素的 style 属性直接设置内联样式,优先级最高:

// 修改单个样式 
document.getElementById("box").style.color = "blue"; 
 
// 修改多个样式(推荐使用 cssText)
document.getElementById("box").style.cssText = "width: 200px; height: 100px;";
  • 适用场景:简单、临时的样式调整(如点击按钮改变颜色)。
  • 注意:属性名需使用驼峰写法(如 backgroundColor 而非 background-color)。

二、通过类名(className/classList)切换样式

1. className 属性

直接替换元素的类名,适合整体样式切换:

element.className = "new-class"; // 覆盖原有类 

2. classList 方法(推荐)

使用 classList 可精细控制类名,避免覆盖:

element.classList.add("active");     // 添加类 
element.classList.remove("hidden");  // 移除类 
element.classList.toggle("dark-mode"); // 切换类 
  • 适用场景:主题切换、响应式布局(如移动端菜单显示/隐藏)。

三、操作 CSS 样式表

1. 修改外部样式表链接

动态切换外部 CSS 文件实现全局主题更换:

const link = document.querySelector('link[href="light.css" rel="external nofollow" ]');
link.href = "dark.css"; // 替换为暗色主题文件 

2. 修改 <style> 标签内容

直接插入或替换嵌入式样式规则:

const style = document.createElement('style');
style.innerHTML = `.box { border: 2px solid red; }`;
document.head.appendChild(style);

四、动态创建 CSS 规则

通过 insertRule() 方法向现有样式表添加新规则:

const sheet = document.styleSheets[0]; // 获取第一个样式表 
sheet.insertRule(".error { color: red; }", 0); // 在索引0位置插入规则 

五、事件驱动的样式修改

结合事件监听实现交互式样式变化:

<button id="btn">切换主题</button>
<script>
  document.getElementById("btn").addEventListener("click", () => {
    document.body.classList.toggle("dark-theme");
  });
</script>

六、性能优化与最佳实践

1. 减少重绘与回流

避免频繁修改 style 属性,优先使用 classList 批量修改。

2. 使用 CSS 变量

通过 JavaScript 动态修改 CSS 变量实现高效主题管理:

document.documentElement.style.setProperty("--main-color", "#ff0000");

3. 防抖与节流

对高频触发的样式修改(如滚动事件)进行性能优化。

七、兼容性处理

  • 使用 classList 时需注意 IE10 及以下不支持,可用 className 配合字符串操作替代。
  • 修改样式表时,优先检测 insertRule 和 deleteRule 的兼容性。

总结

JavaScript 改变 HTML 样式的主要方式包括:

  1. 直接操作 style 属性(适合简单调整)。
  2. 通过类名切换样式(推荐 classList)。
  3. 动态修改样式表或 CSS 变量(适合全局主题)。
  4. 结合事件实现交互式效果。
    最佳实践中应关注性能优化与代码可维护性。

以上就是JavaScript改变HTML样式的主要方式的详细内容,更多关于JavaScript改变HTML样式的资料请关注脚本之家其它相关文章!

相关文章

  • JavaScript字符串中的replace方法用法示例

    JavaScript字符串中的replace方法用法示例

    在JavaScript中处理字符串是一项常见的任务,而去除字符串中的指定子字符串则是其中的一个重要操作,这篇文章主要给大家介绍了关于JavaScript字符串中replace方法的相关资料,需要的朋友可以参考下
    2025-04-04
  • 微信小程序uniapp实现左滑删除效果(完整代码)

    微信小程序uniapp实现左滑删除效果(完整代码)

    这篇文章通过实例代码给大家讲解了微信小程序uniapp实现左滑删除效果,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • javascript canvas实现简易时钟例子

    javascript canvas实现简易时钟例子

    这篇文章主要为大家详细介绍了javascript canvas实现简易时钟例子,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 微信小程序中this.data与this.setData的区别详解

    微信小程序中this.data与this.setData的区别详解

    这篇文章主要给大家介绍了关于微信小程序中this.data与this.setData区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-09-09
  • 微信小程序转发事件实现解析

    微信小程序转发事件实现解析

    这篇文章主要介绍了微信小程序转发事件实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • javascript修改表格背景色实例代码分享

    javascript修改表格背景色实例代码分享

    这篇文章主要介绍了javascript修改表格背景色实例,代码简单,大家参考使用吧
    2013-12-12
  • javascript实现简单放大镜效果

    javascript实现简单放大镜效果

    这篇文章主要为大家详细介绍了javascript实现简单放大镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 让浏览器非阻塞加载javascript的几种方法小结

    让浏览器非阻塞加载javascript的几种方法小结

    通常大多数浏览器是并行下载资源的,但由于外部脚本的特殊性例如通过脚本改变文档的DOM结构、脚本之间的存在依赖关系、使用document.write 向页面输出HTML等。
    2011-04-04
  • 浅谈DOM的操作以及性能优化问题-重绘重排

    浅谈DOM的操作以及性能优化问题-重绘重排

    下面小编就为大家带来一篇浅谈DOM的操作以及性能优化问题-重绘重排。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 微信小程序开发搜索功能实现(前端+后端+数据库)

    微信小程序开发搜索功能实现(前端+后端+数据库)

    这篇文章主要介绍了微信小程序开发搜索功能实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论