CSS改变Tab标签下border的长度

本文介绍了在Vue.js中如何通过伪元素和两种不同的方法(方案一:border-bottom;方案二:background-color配合圆角)来改变Tab标签下边框的长度,以达到美化效果。
摘要由CSDN通过智能技术生成
需求:改变Tab标签下的border的的长度
思路:使用伪元素,定义元素宽度

方式一:为元素添加border
方式二:为元素添加背景颜色(可带圆角,如下图)

效果:

在这里插入图片描述

代码:
<template>
	<view class="tab">
		<view :class="['item', tabIndex==0?'active':'']" @click="handleTab(0)">
			音乐
		</view>
		<view :class="['item', tabIndex==1?'active':'']" @click="handleTab(1)">
			播客
		</view>
		<view :class="['item', tabIndex==2?'active':'']" @click="handleTab(2)">
			动态
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				tabIndex: 0
			}
		},
		methods: {
			handleTab(index) {
				this.tabIndex = index
			}
		}
	}
</script>

<style lang="scss">
	.tab {
		display: flex;
		margin-top: 20rpx;

		.item {
			flex: 1;
			height: 70rpx;

			text-align: center;
			color: rgba(173, 173, 173, 1);
			font-size: 30rpx;
			font-weight: 400;
			line-height: 58rpx;
		}

		.active {
			color: rgba(255, 0, 0, 1);
			text-align: center;
		}

		.active::after {
			content: '';
			width: 15%;
			height: 4rpx;
			display: block;
			margin: 0 auto;
			padding: 1px;

			// 方案一: 通过border-bottom实现 
			// border-bottom: 4px solid rgba(255, 0, 0, 1);

			// 方案二: 通过background-color实现 (可带圆角)
			background-color: rgba(255, 0, 0, 1);
			border-radius: 4rpx;

		}
	}
</style>
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用以下代码实现tab标签切换: HTML代码: ```html <div class="tab"> <button class="tablinks" onclick="openTab(event, 'tab1')">标签1</button> <button class="tablinks" onclick="openTab(event, 'tab2')">标签2</button> <button class="tablinks" onclick="openTab(event, 'tab3')">标签3</button> </div> <div id="tab1" class="tabcontent"> <p>这是标签1的内容。</p> </div> <div id="tab2" class="tabcontent"> <p>这是标签2的内容。</p> </div> <div id="tab3" class="tabcontent"> <p>这是标签3的内容。</p> </div> ``` CSS代码: ```css .tab { overflow: hidden; border: 1px solid #ccc; background-color: #f1f1f1; } .tab button { background-color: inherit; float: left; border: none; outline: none; cursor: pointer; padding: 14px 16px; transition: 0.3s; } .tab button:hover { background-color: #ddd; } .tab button.active { background-color: #ccc; } .tabcontent { display: none; padding: 6px 12px; border: 1px solid #ccc; border-top: none; } .tabcontent.show { display: block; } ``` JavaScript代码: ```javascript function openTab(evt, tabName) { var i, tabcontent, tablinks; tabcontent = document.getElementsByClassName("tabcontent"); for (i = 0; i < tabcontent.length; i++) { tabcontent[i].classList.remove("show"); } tablinks = document.getElementsByClassName("tablinks"); for (i = 0; i < tablinks.length; i++) { tablinks[i].classList.remove("active"); } document.getElementById(tabName).classList.add("show"); evt.currentTarget.classList.add("active"); } ``` 在JavaScript代码中,openTab()函数会根据传入的参数tabName来显示相应的标签页,并将对应的按钮设为激活状态。同时,如果有其他标签页处于激活状态,会将其隐藏并将对应的按钮设为非激活状态。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值