tab栏的三栏分布

有些同学可能会遇到tab栏的切换,在偶数的切换,会比较简单,用百分比即可,奇数的话,用百分比会有些问题。下面是我找到还不错的方案(flex)

HTML:

CSS:

 

https://www.jb51.net/css/744393.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现原生 tab 切换三级的方法有很多种,以下是一种简单的实现方式: 1. HTML 结构 ```html <div class="tab-container"> <div class="tabs"> <ul> <li class="active"><a href="#tab1">Tab 1</a></li> <li><a href="#tab2">Tab 2</a></li> <li><a href="#tab3">Tab 3</a></li> </ul> </div> <div class="tab-content"> <div id="tab1" class="tab-pane active"> <ul class="sub-tabs"> <li class="active"><a href="#tab1-1">Sub Tab 1</a></li> <li><a href="#tab1-2">Sub Tab 2</a></li> <li><a href="#tab1-3">Sub Tab 3</a></li> </ul> <div class="sub-tab-content"> <div id="tab1-1" class="sub-tab-pane active">Tab 1, Sub Tab 1 Content</div> <div id="tab1-2" class="sub-tab-pane">Tab 1, Sub Tab 2 Content</div> <div id="tab1-3" class="sub-tab-pane">Tab 1, Sub Tab 3 Content</div> </div> </div> <div id="tab2" class="tab-pane"> <ul class="sub-tabs"> <li class="active"><a href="#tab2-1">Sub Tab 1</a></li> <li><a href="#tab2-2">Sub Tab 2</a></li> <li><a href="#tab2-3">Sub Tab 3</a></li> </ul> <div class="sub-tab-content"> <div id="tab2-1" class="sub-tab-pane active">Tab 2, Sub Tab 1 Content</div> <div id="tab2-2" class="sub-tab-pane">Tab 2, Sub Tab 2 Content</div> <div id="tab2-3" class="sub-tab-pane">Tab 2, Sub Tab 3 Content</div> </div> </div> <div id="tab3" class="tab-pane"> <ul class="sub-tabs"> <li class="active"><a href="#tab3-1">Sub Tab 1</a></li> <li><a href="#tab3-2">Sub Tab 2</a></li> <li><a href="#tab3-3">Sub Tab 3</a></li> </ul> <div class="sub-tab-content"> <div id="tab3-1" class="sub-tab-pane active">Tab 3, Sub Tab 1 Content</div> <div id="tab3-2" class="sub-tab-pane">Tab 3, Sub Tab 2 Content</div> <div id="tab3-3" class="sub-tab-pane">Tab 3, Sub Tab 3 Content</div> </div> </div> </div> </div> ``` 2. CSS 样式 ```css /* tab 样式 */ .tabs ul { list-style: none; margin: 0; padding: 0; } .tabs li { display: inline-block; margin: 0; padding: 0; } .tabs a { display: block; padding: 10px; background-color: #f2f2f2; color: #333; text-decoration: none; border-radius: 5px 5px 0 0; } .tabs a:hover { background-color: #ddd; } .tabs .active a { background-color: #ddd; } /* sub-tab 样式 */ .sub-tabs { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid #ddd; } .sub-tabs li { display: inline-block; margin: 0; padding: 0; } .sub-tabs a { display: block; padding: 10px; background-color: #f2f2f2; color: #333; text-decoration: none; border-radius: 5px 5px 0 0; } .sub-tabs a:hover { background-color: #ddd; } .sub-tabs .active a { background-color: #ddd; } /* tab 内容样式 */ .tab-content .tab-pane { display: none; } .tab-content .tab-pane.active { display: block; } .sub-tab-content .sub-tab-pane { display: none; } .sub-tab-content .sub-tab-pane.active { display: block; } ``` 3. JavaScript 代码 ```javascript // 获取所有 tab 标签和内容 const tabs = document.querySelectorAll('.tabs li'); const tabContent = document.querySelectorAll('.tab-content .tab-pane'); // 获取所有 sub-tab 标签和内容 const subTabs = document.querySelectorAll('.sub-tabs li'); const subTabContent = document.querySelectorAll('.sub-tab-content .sub-tab-pane'); // 给每个 tab 标签绑定点击事件 tabs.forEach((tab, index) => { tab.addEventListener('click', () => { // 切换 active 样式 tabs.forEach((tab) => { tab.classList.remove('active'); }); tab.classList.add('active'); // 切换 tab 内容 tabContent.forEach((content) => { content.classList.remove('active'); }); tabContent[index].classList.add('active'); // 切换 sub-tab 样式和内容 subTabs.forEach((subTab, subIndex) => { subTab.classList.remove('active'); subTabContent[subIndex].classList.remove('active'); }); subTabs[0].classList.add('active'); subTabContent[index * 3].classList.add('active'); }); }); // 给每个 sub-tab 标签绑定点击事件 subTabs.forEach((subTab, index) => { subTab.addEventListener('click', () => { // 切换 active 样式 subTabs.forEach((subTab) => { subTab.classList.remove('active'); }); subTab.classList.add('active'); // 切换 sub-tab 内容 subTabContent.forEach((content) => { content.classList.remove('active'); }); subTabContent[index].classList.add('active'); }); }); ``` 以上代码实现了一个三级 tab 切换的效果。其中,每个 tab 标签下有三个 sub-tab 标签,每个 sub-tab 标签对应一个内容区域。点击 tab 标签时,切换 tab 内容和 sub-tab 样式和内容;点击 sub-tab 标签时,切换 sub-tab 内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值