新闻中心
使用 J*aScript 函数动态添加 CSS 样式

本文将介绍如何使用 J*aSc
ript 函数动态地将 CSS 样式应用于 HTML 元素,避免使用 document.write() 方法,并采用 appendChild 和 classList.add 等现代 Web 开发技术,实现灵活且可维护的样式控制。我们将通过示例代码,详细讲解如何创建元素、添加类名以及将元素插入到 DOM 树中。
动态添加 CSS 样式的常用方法
在 Web 开发中,动态地改变元素的样式是非常常见的需求。直接在 J*aScript 中使用内联样式虽然可行,但不利于代码维护和样式复用。更推荐的做法是将样式定义在 CSS 文件中,然后通过 J*aScript 动态地为元素添加或删除类名,从而控制元素的样式。
以下是几种常用的方法:
- classList.add(className): 向元素的 classList 属性添加指定的类名。
- classList.remove(className): 从元素的 classList 属性移除指定的类名。
- classList.toggle(className): 如果元素的 classList 属性中存在指定的类名,则移除它;否则,添加它。
- 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);代码解释:
- openQRCodeWindow 函数: 接收 QR Code 相关的数据作为参数。
- 创建元素: 使用 document.createElement 创建 HTML 元素,例如 div、img 和 button。
- 添加类名: 使用 classList.add 为元素添加 CSS 类名,从而应用预定义的样式。
- 设置属性: 使用 element.src、element.textContent 和 element.innerHTML 设置元素的属性和内容。
- 添加子元素: 使用 appendChild 将元素添加到 DOM 树中。
- 示例调用: 展示如何调用 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:优雅测试内部依赖与异常处理的实践


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