使用details和summary标签可模拟选项卡效果。通过HTML结构搭建多个details区域,用CSS美化样式并隐藏默认箭头,JavaScript控制单次仅一个tab展开,实现简洁的选项卡切换功能,适合轻量级需求。

选项卡切换效果可以通过 HTML 的
标签结合 CSS 与少量 JavaScript 模拟实现。虽然原生的 details/summary 主要用于折叠内容,但稍作调整可以模拟出简洁的选项卡交互效果。
使用 details 和 summary 模拟选项卡结构
作为标题触发器。通过控制多个 details 的状态,可模拟选项卡的切换逻辑。
基本结构如下:
标签一
标签二
标签三
用 CSS 控制外观和排版
默认的 summary 有箭头且样式原始,需用 CSS 美化并模拟选项卡风格。
立即学习“前端免费学习笔记(深入)”;
阿里云-虚拟数字人
阿里云-虚拟数字人是什么? …
2 查看详情
.tabs {
display: flex;
flex-direction: column;
}
.tab summary {
list-style: none;
padding: 10px;
background: #f0f0f0;
border-bottom: 1px solid #ddd;
cursor: pointer;
}
.tab summary::after {
content: “”;
display: inline-block;
width: 0;
height: 0;
margin-left: 10px;
border: 5px solid transparent;
border-top-color: #000;
}
.tab[open] summary::after {
border-bottom-color: #000;
border-top-color: transparent;
}
.tab-content {
padding: 15px;
background: #fff;
border-top: 1px solid #ddd;
}
JavaScript 实现单开选项卡逻辑
默认情况下多个 details 可同时打开,要实现“只显示一个面板”,需添加 JS 控制。
监听每个 summary 的点击事件,手动关闭其他已打开的 tab。
document.querySelectorAll(‘.tab summary’).forEach(summary => {
summary.onclick = function(e) {
const tabItem = this.parentElement;
if (tabItem.hasAttribute(‘open’)) {
return;
}
document.querySelectorAll(‘.tab’).forEach(el => {
el.removeAttribute(‘open’);
});
tabItem.setAttribute(‘open’, ”);
e.preventDefault();
};
});
注意:summary 点击会自动触发 toggle,因此要在已打开时阻止默认行为,避免闪烁或反复开关。
基本上就这些。利用 details/summary 能快速搭建语义化良好的可折叠结构,再通过样式和脚本模拟出选项卡效果,适合轻量级需求,无需复杂框架。
以上就是html函数如何实现选项卡切换效果 html函数利用细节标签的模拟的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/615021.html
微信扫一扫
支付宝扫一扫