新闻中心

使用 J*aScript 函数动态添加 CSS 样式

2025-10-19
浏览次数:
返回列表

使用 javascript 函数动态添加 css 样式

本文将介绍如何使用 J*aScript 函数动态地将 CSS 样式应用于 HTML 元素,避免使用 document.write() 方法,并采用 appendChild 和 classList.add 等现代 Web 开发技术,实现灵活且可维护的样式控制。我们将通过示例代码,详细讲解如何创建元素、添加类名以及将元素插入到 DOM 树中。

动态添加 CSS 样式的常用方法

在 Web 开发中,动态地改变元素的样式是非常常见的需求。直接在 J*aScript 中使用内联样式虽然可行,但不利于代码维护和样式复用。更推荐的做法是将样式定义在 CSS 文件中,然后通过 J*aScript 动态地为元素添加或删除类名,从而控制元素的样式。

以下是几种常用的方法:

  1. classList.add(className): 向元素的 classList 属性添加指定的类名。
  2. classList.remove(className): 从元素的 classList 属性移除指定的类名。
  3. classList.toggle(className): 如果元素的 classList 属性中存在指定的类名,则移除它;否则,添加它。
  4. element.style.property = value: 直接设置元素的内联样式。不推荐大量使用,因为它会降低代码的可维护性。

示例:动态创建 QR Code 窗口并应用样式

假设我们需要动态创建一个包含 QR Code 的窗口,并应用特定的样式。以下是一个完整的示例:

HTML 结构:

<div id="qr-container"></div>

CSS 样式 (style.css):

.qr-window {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-image: url("megapolis background.png"); /* 替换为你的背景图片 */
  background-size: cover;
  padding: 20px;
}

.qr-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border: 2px solid #ccc;
  border-radius: 10px;
  width: 400px;
  margin-bottom: 20px;
}

.qr-image {
  margin-right: 20px;
}

.details-container {
  text-align: right;
}

.details-container h3 {
  margin-bottom: 10px;
}

.button-container {
  margin-top: 20px;
  text-align: center;
}

.button-container button {
  margin: 0 5px;
  padding: 10px 20px;
  background-color: #4CAF50;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

J*aScript 代码:

function openQRCodeWindow(registrationId, qrCodeImage, firstName, lastName, email, contactNumber, seatNumber) {
  // 获取容器元素
  const qrContainer = document.getElementById('qr-container');

  // 创建窗口容器
  const qrWindow = document.createElement('div');
  qrWindow.classList.add('qr-window');

  // 创建 QR Code 容器
  const container = document.createElement('div');
  container.classList.add('qr-container');

  // 创建 QR Code 图片元素
  const qrImageElement = document.createElement('img');
  qrImageElement.src = qrCodeImage;
  qrImageElement.alt = "QR Code";
  qrImageElement.classList.add('qr-image');

  // 创建详情容器
  const detailsContainer = document.createElement('div');
  detailsContainer.classList.add('details-container');

  // 创建详情内容
  const detailsHTML = `
    <h3>Details</h3>
    <p>Registration ID: ${registrationId}</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/xiazai/code/9454">
                            <img src="https://img.php.cn/upload/webcode/000/000/012/175902480515433.jpg" alt="漂亮的电子企业网站1.2">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/xiazai/code/9454">漂亮的电子企业网站1.2</a>
                            <p>这是一个免费的企业网站系统,任何人可以免费下载、修改和使用本程序,也可以用来为企业建网站。没有任何功能限制,且不发布收费版。容兴免费企业网站系统后台功能简介:1.基本设置:基本信息,联系方式,网站设置,导航管理,模块启闭,静态设置,安全设置,数据库管理2.产品管理:产品列表,添加产品,产品分类3.文章管理:文章列表,发表文章,文章分类,公司简介,网站公告4.客服互动:留言管理,在线客服,友情链接5</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="漂亮的电子企业网站1.2">
                                <span>0</span>
                            </div>
                        </div>
                        <a href="/xiazai/code/9454" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="漂亮的电子企业网站1.2">
                        </a>
                    </div>
                
    <p>First Name: ${firstName}</p>
    <p>Last Name: ${lastName}</p>
    <p>Email: ${email}</p>
    <p>Contact Number: ${contactNumber}</p>
    <p>${seatNumber}</p>
  `;
  detailsContainer.innerHTML = detailsHTML;

  // 创建按钮容器
  const buttonContainer = document.createElement('div');
  buttonContainer.classList.add('button-container');

  // 创建按钮
  const s*eImageButton = document.createElement('button');
  s*eImageButton.textContent = 'S*e Image';

  const emailButton = document.createElement('button');
  emailButton.textContent = 'Email';

  // 将元素添加到容器中
  container.appendChild(qrImageElement);
  container.appendChild(detailsContainer);

  buttonContainer.appendChild(s*eImageButton);
  buttonContainer.appendChild(emailButton);

  qrWindow.appendChild(container);
  qrWindow.appendChild(buttonContainer);

  qrContainer.appendChild(qrWindow);
}

// 示例调用
// 假设你已经获取了这些数据
const registrationId = "12345";
const qrCodeImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="; // 替换为你的 QR Code 数据
const firstName = "John";
const lastName = "Doe";
const email = "john.doe@example.com";
const contactNumber = "123-456-7890";
const seatNumber = "Seat A1";

openQRCodeWindow(registrationId, qrCodeImage, firstName, lastName, email, contactNumber, seatNumber);

代码解释:

  1. openQRCodeWindow 函数: 接收 QR Code 相关的数据作为参数。
  2. 创建元素: 使用 document.createElement 创建 HTML 元素,例如 div、img 和 button。
  3. 添加类名: 使用 classList.add 为元素添加 CSS 类名,从而应用预定义的样式。
  4. 设置属性: 使用 element.src、element.textContent 和 element.innerHTML 设置元素的属性和内容。
  5. 添加子元素: 使用 appendChild 将元素添加到 DOM 树中。
  6. 示例调用: 展示如何调用 openQRCodeWindow 函数,并传递示例数据。

注意事项

  • 避免 document.write(): document.write() 会覆盖整个文档,不推荐在现代 Web 开发中使用。
  • CSS 分离: 将样式定义在 CSS 文件中,并通过类名来控制元素的样式,可以提高代码的可维护性和可重用性。
  • 性能优化: 频繁操作 DOM 可能会影响性能。尽量减少 DOM 操作的次数,例如可以使用文档片段(DocumentFragment)来批量添加元素。
  • 错误处理: 在实际项目中,应该添加错误处理机制,例如检查元素是否存在,以及处理可能出现的异常。

总结

通过本文,你学习了如何使用 J*aScript 函数动态地添加 CSS 样式,避免了使用 document.write() 方法,并掌握了 appendChild 和 classList.add 等现代 Web 开发技术。通过将样式定义在 CSS 文件中,并使用 J*aScript 动态地为元素添加或删除类名,可以实现灵活且可维护的样式控制。记住,编写清晰、可维护的代码是 Web 开发的关键。

以上就是使用 J*aScript 函数动态添加 CSS 样式的详细内容,更多请关注其它相关文章!


# 移除  # 网站优化叫什么  # 台州网站seo技术  # 安徽巢湖推广网站电话  # 每个城市关键词排名优化  # 福州家装网站建设  # 富锦网站推广外包服务  # 黄梅seo推广机构地址  # 大仙seo优化  # 潜山网站优化哪家靠谱  # 宁波网站推广威心hfqjwl  # 文档  # 容器内  # 是一个  # 拖拽  # css  # 如何使用  # 或删除  # 自定义  # 复选框  # 企业网站  # win  # ai  # ssl  # yii  # app  # go  # html  # java  # javascript 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略  Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南  Django通过AJAX异步上传图片并保存至模型的完整指南  漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口  J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明  MAC怎么在地图App里使用“四处看看”_MAC体验部分城市的3D实景街景  mcjs网页版在线存档 mcjs云存档登录入口  C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器  必由学官网首页入口 必由学教师网页版登录指南  如何使 Jest 模拟函数默认抛出错误以提高测试效率  《主播少女的秘密账号迷宫》首支宣传片  夸克浏览器图书入口 夸克手机浏览器阅读入口  excel怎么制作工资条 excel快速生成工资条的方法  b站怎么取消点赞_b站点赞取消操作方法  怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】  css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染  地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站  《刺客信条:影》PS5 Pro和Switch 2画面对比  12306怎么选座位选到安静区_12306选座安静区域选择策略  Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践  C++ explicit关键字防止隐式转换_C++构造函数安全规范  机器学习中对数变换预测结果的反向还原  邮政快递单号查询入口 邮政快递物流信息在线查询入口  2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示  深入理解J*a链表中的IPosition接口与使用  LINUX怎么设置定时任务_LINUX crontab配置教程  CSS子选择器:如何区分并样式化嵌套列表的子层级  Golang如何测试channel通信行为_Golang channel通信测试与分析方法  解决J*aScript中重复选择项的确认对话框显示问题  小米14应用无法联网原因分析_小米14网络权限修复  vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法  快手极速版在线观看 官方网页版登录地址  Surface怎么安装系统 微软Surface Pro U盘重装win11教程  网易大神账号申诉需要多久_网易大神账号申诉流程说明  J*aScript教程:根据元素文本内容动态设置背景色  汽水音乐在线版入口_汽水音乐网页播放手册  微信网页版官方入口直达 微信网页版网页版登录使用方法  Kafka Streams中基于消息头条件过滤消息的实现指南  探索高级语言到C/C++的转译路径:以Go为例及内存管理策略  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  Composer如何处理Git子模块(submodule)依赖_Composer与Git Submodule的对比与选择  win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】  小米Civi 4录制视频过暗_小米Civi 4亮度优化  Lar*el DB::listen 事件中的查询执行时间单位解析  J*aScript中向JSON对象添加新属性的正确姿势  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  JUnit5/Mockito:优雅测试内部依赖与异常处理的实践 

搜索