css元素点击后变色,且点击别的地方不会颜色消失

本文介绍了在Vue.js应用中,如何实现点击元素使其变色,并在点击其他地方后保持选中状态。通过添加tabindex属性支持:focus伪类,结合CSS样式改变颜色。同时,利用data中的selectedIndex和Vue的:class绑定,实现元素被点击后的高亮状态持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果在这里插入图片描述

一、首先如果你的需求是点击元素变色就可以了,可以用第一种方法

//普通元素类似button按钮不用 tabindex=“1”,由于div不支持:focus伪类,可通过增加tabIndex属性使其支持:focus

 <div v-for="(item,index) in tableData" :key="index" class="fontStyle" tabindex="1" >
   	<div @click="systemChange(item,index)" >{{ item.system }}</div>
 </div>

css:

fontStyle:focus{
	color:#0C5ACF;
}

二、元素变色后点击其他地方保留颜色

首先在data中加入selectedIndex:0;
其次:

<div v-for="(item,index) in tableData" :key="index" class="fontStyle" tabindex="1" >
   <div :class="selectedIndex == index ? 'active':''" @click="systemChange(item,index)" class="lineStyle">{{ item.system }}</div>
</div>

js:

systemChange(val,index){
      this.selectedIndex = index;
},

css:

.lineStyle.active {
  color:#0C5ACF;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值