Tab切换功能是指在一个容器中,通过点击不同的标签页,显示对应的内容(点击标签时,下方数据随标签切换)。
下面三个简单的HTML结构示例:
一、CSS
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } ul { display: flex; border-bottom: 2px solid #e01222; padding: 0 10px; } li { width: 100px; height: 50px; line-height: 50px; list-style: none; text-align: center; } li a { display: block; text-decoration: none; font-weight: bold; color: #333333; } li a.active:active, li a.active:focus { background-color: #e01222; color: #fff; } </style> </head> <body> <div id="app"> <ul> <li><a href="#">今日秒杀</a></li> <li><a href="#">每日特价</a></li> <li><a href="#">品类秒杀</a></li> </ul> </div> </body> </html>
二、JS方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } ul { display: flex; border-bottom: 2px solid #e01222; padding: 0 10px; } li { width: 100px; height: 50px; line-height: 50px; list-style: none; text-align: center; } li a { display: block; text-decoration: none; font-weight: bold; color: #333333; } li a.active { background-color: #e01222; color: #fff; } </style> </head> <body> <div id="app"> <ul> <li><a href="#">今日秒杀</a></li> <li><a href="#">每日特价</a></li> <li><a href="#">品类秒杀</a></li> </ul> </div> <script> document.querySelector('#app ul').addEventListener('click',e=>{ if(e.target.tagName==='A'){ document.querySelector('.active').classList.remove('active') e.target.classList.add('active') } }) </script> </body> </html>
三、Vue方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } ul { display: flex; border-bottom: 2px solid #e01222; padding: 0 10px; } li { width: 100px; height: 50px; line-height: 50px; list-style: none; text-align: center; } li a { display: block; text-decoration: none; font-weight: bold; color: #333333; } li a.active { background-color: #e01222; color: #fff; } </style> </head> <body> <div id="app"> <ul> <li v-for="(item,index) in list" :key="item.id"><a :class="{active:index===activeIndex}" @click="activeIndex=index" href="#">{{item.name}}</a></li> </ul> </div> <script src="./vue.js"></script> <script> const app = new Vue({ el: '#app', data: { activeIndex:0, list: [ { id: 1, name: '今日秒杀' }, { id: 2, name: '每日特价' }, { id: 3, name: '品类秒杀' } ] } }) </script> </body> </html>