web原生ui组件库
2025-04-08
24
参考资料
Web原生UI组件库说明及案例
基本概念
Web原生UI组件库是指基于HTML、CSS和JavaScript标准技术构建的可复用用户界面组件集合,不依赖任何框架。
核心组件类型
表单组件
输入框(input)
选择框(select)
复选框(checkbox)
单选按钮(radio)
按钮(button)
导航组件
菜单(nav)
标签页(tabs)
面包屑(breadcrumb)
内容展示
卡片(card)
表格(table)
列表(list)
模态框(dialog)
反馈组件
提示框(alert)
加载指示器(spinner)
进度条(progress)
实现案例
1. 原生模态框实现
<button id="openModal">打开模态框</button>
<dialog id="modal">
<h2>标题</h2>
<p>这是模态框内容</p>
<button id="closeModal">关闭</button>
</dialog>
<script>
const modal = document.getElementById('modal');
document.getElementById('openModal').addEventListener('click', () => {
modal.showModal();
});
document.getElementById('closeModal').addEventListener('click', () => {
modal.close();
});
</script>
<style>
dialog {
border: none;
border-radius: 8px;
padding: 20px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
</style>2. 自定义下拉选择框
<div class="custom-select">
<select>
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3">选项3</option>
</select>
<span class="custom-arrow"></span>
</div>
<style>
.custom-select {
position: relative;
width: 200px;
}
.custom-select select {
width: 100%;
padding: 8px;
appearance: none;
border: 1px solid #ccc;
border-radius: 4px;
}
.custom-arrow {
position: absolute;
top: 50%;
right: 10px;
transform: translateY(-50%);
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #333;
}
</style>3. 标签页组件
<div class="tabs">
<div class="tab-header">
<button class="tab-btn active" data-tab="tab1">标签1</button>
<button class="tab-btn" data-tab="tab2">标签2</button>
</div>
<div class="tab-content">
<div id="tab1" class="tab-pane active">内容1</div>
<div id="tab2" class="tab-pane">内容2</div>
</div>
</div>
<script>
document.querySelectorAll('.tab-btn').forEach(btn => {
btn.addEventListener('click', () => {
const tabId = btn.dataset.tab;
// 移除所有active类
document.querySelectorAll('.tab-btn, .tab-pane').forEach(el => {
el.classList.remove('active');
});
// 添加active类到当前按钮和对应内容
btn.classList.add('active');
document.getElementById(tabId).classList.add('active');
});
});
</script>
<style>
.tab-header {
display: flex;
border-bottom: 1px solid #ddd;
}
.tab-btn {
padding: 10px 20px;
background: none;
border: none;
cursor: pointer;
}
.tab-btn.active {
border-bottom: 2px solid blue;
}
.tab-pane {
display: none;
padding: 20px;
}
.tab-pane.active {
display: block;
}
</style>优势
无框架依赖,性能高效
浏览器原生支持,兼容性好
体积小,加载速度快
可渐进增强,与现代框架兼容
注意事项
需要处理浏览器兼容性问题
部分组件需要手动实现交互逻辑
样式需要自行维护一致性
对于
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . office 办公自动化》 -- 发布时间:2025-03-29
本页链接:https://ofc.ciilii.com/show/news-514.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
