当前位置: 首页 > news >正文

19.从行内到类名:JavaScript 修改 CSS 样式的两种核心方式对比

目录

一、获取/修改样式属性

二、行内样式操作

代码示例:点击文字则放大字体。

方式一:

方式二:

三、行内样式操作(补充示例)

四、类名样式操作


一、获取/修改样式属性

CSS 中指定给元素的属性,都可以通过 JS 来修改。

二、行内样式操作

语法:

element.style.[属性名] = [属性值]; element.style.cssText = [属性名+属性值];

说明:

“行内样式”,通过 style 直接在标签上指定的样式。

优先级很高。

适用于改的样式少的情况。

注意:

style 中的属性都是使用驼峰命名​ 的方式和 CSS 属性对应的。

例如:font-size => fontSize,background-color => backgroundColor

这种方式修改只影响到特定样式,其他内联样式的值不变。

代码示例:点击文字则放大字体。

方式一:

<head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div style="font-size: 10px;" onclick="changeSize()">哈哈哈</div> </body> <script> function changeSize() { let element = document.querySelector('div') console.log(element.style) let size = parseInt(element.style.fontSize) + 10 element.style.fontSize = size + "px" // console.log(typeof(size)) } </script>

方式二:

<script> function changeSize() { let element = document.querySelector('div') console.log(element.style) let size = parseInt(element.style.fontSize) + 10 // element.style.fontSize = size + "px" element.style.cssText = "font-size:" + size + "px" // console.log(typeof(size)) } </script>

三、行内样式操作(补充示例)

说明:

“行内样式”,通过 style 直接在标签上指定的样式。优先级很高。

适用于改的样式少的情况。

代码示例:点击文字则放大字体。

style 中的属性都是使用驼峰命名​ 的方式和 CSS 属性对应的。

例如:font-size => fontSize,background-color => backgroundColor

这种方式修改只影响到特定样式,其他内联样式的值不变。

<head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div { font-size: 10px; } </style> </head> <body> <div onclick="changeSize()">哈哈哈</div> </body> <script> function changeSize() { let element = document.querySelector('div') console.log(element.style) let size = parseInt(element.style.fontSize) + 10 // element.style.fontSize = size + "px" element.style.cssText = "font-size:" + size + "px" // console.log(typeof(size)) } </script>

(注:此处标注“这种是无法实现效果的”,指的是如果样式写在<style>标签内,直接使用element.style.fontSize初始可能获取不到值,需要结合getComputedStyle,但此处仅展示代码结构)


四、类名样式操作

语法:

element.className = [CSS 类名];

说明:

修改元素的 CSS 类名。适用于要修改的样式很多的情况。

由于 class 是 JS 的保留字,所以名字叫做 className。

代码示例:开启夜间模式

HTML 与 CSS 结构:

<style> .light { background-color: aliceblue; color: black; width: 100%; height: 100%; } body, html { width: 100%; height: 100%; } .dark { background-color: black; color: white; width: 100%; height: 100%; } </style> <body> <div class="light"> 这是一段话<br> 这是一段话<br> 这是一段话<br> 这是一段话<br> 这是一段话<br> 这是一段话<br> </div> </body>

JS 切换逻辑:

<body> <div class="light" onclick="changeStyle()"> 这是一段话<br> 这是一段话<br> 这是一段话<br> 这是一段话<br> 这是一段话<br> 这是一段话<br> </div> </body> <script> function changeStyle() { let element = document.querySelector('div') // 如果当前的样式是白天模式,此时就将其样式切换成黑夜模式 // 否则就将当前样式调整成白天模式 console.log(element.className) if(element.className == "light") { element.className = "dark" } else { element.className = "light" } } </script>
http://www.jsqmd.com/news/928987/

相关文章:

  • AI生态竞争:从模型军备竞赛到开发者生态构建的范式转移
  • 基于树莓派与MediaPipe的手势控制智能镜子DIY全攻略
  • 大模型面试题:LLM预训练阶段有哪几个关键步骤?
  • foobox:如何将foobar2000打造成专业级音乐管理平台
  • XaaS容器:高性能计算中的性能可移植性解决方案
  • 如何通过3个简单步骤将你的智能电视变成家庭影院中心?
  • Sunshine深度解析:如何构建高性能自托管游戏云服务器
  • zhouhui/stsb-roberta-large入门教程:5分钟掌握句子相似度计算
  • 终极指南:如何通过RMSProp优化器和EMA权重平均提升cspdarknet53.ra_in1k训练稳定性
  • Kafka InconsistentClusterIdException 导致容器无限重启,磁盘打满排查与修复
  • 大模型面试题:LangChain Token计数有什么问题?如何解决?
  • ncmdumpGUI深度解析:突破性Windows音频格式转换实战指南
  • 终极指南:如何在Zotero内部一站式管理所有插件
  • 2026年留学生实习期求职机构推荐,五大全流程服务优质品牌 - 资讯焦点
  • LoRa无线通信入门:基于AT命令的REYAX RYLR998模块配置与实战
  • 深度伪造视频监管空白正在扩大(2024全球立法进度白皮书首发)
  • NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的专业调优指南
  • GLM-5.1蒸馏技术如何赋能Qwen3.5?Qwen3.5-9B-GLM5.1-Distill-v1-GGUF背后的原理详解
  • Apollo-7B横空出世:革命性多语言医疗AI模型如何赋能全球60亿人?
  • 2026年国内厨卫电器消费市场现状及消费者选购参考指南 - 资讯焦点
  • 保姆级教程:用tippecanoe+Mapbox GL JS把OSM数据变成可交互地图(附完整代码)
  • 从手机充电到无人机供电:拆解Buck/Boost电路电感电容选型背后的工程权衡
  • 0202可回收火箭全域收敛实证:1.0实体范式抵达终极天花板
  • Veo 2 4K生成失败率骤升210%?NVIDIA驱动、CUDA版本与FFmpeg封装链路深度排障手册
  • QMCDecode终极指南:在macOS上快速解锁QQ音乐加密文件的完整方案
  • 从代码到落地:BailingMoeV2_5模型架构的MoE稀疏专家系统详解 [特殊字符]
  • 微信聊天记录永久保存的终极指南:从数据备份到智能分析的完整方案
  • 燃气灶有3C认证和没有的区别 2026年版科普选购指南 - 资讯焦点
  • 彻底告别显卡驱动冲突:DDU工具完全使用指南
  • 2026年宁夏护栏制造厂谁家靠谱?银川本地源头工厂与主流供应商全景对比 - 优质企业观察收录