参考1:https://blog.csdn.net/Just_Maybe/article/details/103597060
参考2:画三角形:https://blog.csdn.net/ka_xingl/article/details/117251528

获取最后一个元素:&:last-child {}

div{margin-right: 10px;&:last-child{margin-right: 0px;}
}


原理:

 <div class="select-box"><div class="box"><div>全部</div><div class="box-con"><span>×</span></div></div><div class="box"><div>水污染</div><div class="box-con"><span>×</span></div></div><div class="box"><div>大气污染</div><div class="box-con"><span>×</span></div></div><div class="box"><div>土壤污染</div><div class="box-con"><span>×</span></div></div></div>
.select-box {display: flex;.box {width: 86px;height: 36px;line-height: 36px;background: rgba(30, 37, 48, 0.6);border: 1px solid #67e5ff;border-radius: 4px;font-size: 14px;color: #67e5ff;text-align: center;position: relative;overflow: hidden;}.box:nth-child(-n + 3) {margin-right: 16px;}.box .box-con {width: 30px;height: 30px;position: absolute;background: #67e5ff;top: -15px;right: -15px;transform: rotate(45deg);}.box .box-con span {position: absolute;bottom: 0;display: block;width: 24px;height: 24px;text-align: center;transform: rotate(-45deg);color: #000;}
}

实现点击切换:

方法一:
实现原理:利用三元表达式来添加不同类名、控制显示隐藏、display:none

<template><div class="select-box"><div :class="item.selected === true ? 'box active' : 'box'" v-for="(item, index) in tabList" :key="index" @click="changePollutionType(item, $event)"><div>{{ item.label }}</div><div :class="item.selected === true ? 'box-con' : 'con-none'"><span>×</span></div></div></div>
</template><script>
export default {name: '',data() {return {tabList: [{ label: '全部', value: '全部', selected: false },{ label: '水污染', value: '水污染', selected: false },{ label: '大气污染', value: '大气污染', selected: false },{ label: '土壤污染', value: '土壤污染', selected: false },],}},methods: {changePollutionType(item, e) {if (item.selected === true) {item.selected = false} else {item.selected = true}},},
}
</script><style lang="scss" scoped>
.select-box {display: flex;.box {width: 86px;height: 36px;line-height: 36px;background: rgba(30, 37, 48, 0.6);border: 1px solid #67e5ff;border-radius: 4px;font-size: 14px;color: #67e5ff;text-align: center;position: relative;overflow: hidden;cursor: pointer;&.active {background: rgba(6, 44, 103, 0.6);}}.box:nth-child(-n + 3) {margin-right: 16px;}.con-none {display: none;}.box .box-con {width: 30px;height: 30px;position: absolute;background: #67e5ff;top: -15px;right: -15px;transform: rotate(45deg);}.box .box-con span {position: absolute;bottom: 0;display: block;width: 24px;height: 24px;text-align: center;transform: rotate(-45deg);color: #000;}
}.icon-duigou:before {content: '\E606';font-size: 4px;
}
</style>

实现方法二:
实现原理:利用伪类、js中动态添加类名

<template><div class="tab-list-box"><div class="tab-list" v-for="(item, index) in tabList" :key="index" @click="changePollutionType(item, $event)"><div class="tab-item">{{ item.label }}</div></div></div>
</template><script>
export default {name: '',data() {return {tabList: [{ label: '全部', value: '全部', selected: false },{ label: '水污染', value: '水污染', selected: false },{ label: '大气污染', value: '大气污染', selected: false },{ label: '土壤污染', value: '土壤污染', selected: false },],}},methods: {changePollutionType(item, e) {if (item.selected === true) {item.selected = false} else {item.selected = true}if (e.target.className === 'tab-item') {e.target.className = 'tab-item active' //切换按钮} else {e.target.className = 'tab-item' //切换按钮}},},
}
</script><style lang="scss" scoped>
.tab-list-box {margin-top: 20px;.tab-list {display: inline-block;.tab-item {width: 86px;height: 36px;background: rgba(30, 37, 48, 0.6);border: 1px solid #67e5ff;opacity: 1;border-radius: 4px;text-align: center;line-height: 36px;cursor: pointer;position: relative;&.active {background: rgba(6, 44, 103, 0.6);}&.active::before {content: '';width: 0;height: 0;border: 15px solid transparent;border-right: 15px solid #67e5ff;transform: rotate(135deg);position: absolute;right: -15px;top: -16px;cursor: pointer;}&.active::after {content: 'x';width: 16px;height: 16px;color: #fff;position: absolute;right: 0px;top: -11px;cursor: pointer;}}}.tab-list:nth-child(-n + 3) {margin-right: 16px;}
}
</style>

Vue点击选中(多选)选中右上角有三角形相关推荐

  1. vue复选框选中一个全选中了

    vue复选框选中一个全选中了 在业务开发中,使用了checkbox-group组件,发现点击其中的一个选项后,所有数据都被选中了,取消也是全部取消了. 原因:绑定数据的时候,定义的是字符串,修改为数组 ...

  2. vue el-tree 同时向后台传递选中和半选节点数据 (回显数据勾选问题已解决)

    vue el-tree 同时向后台传递选中和半选节点数据 (回显数据勾选问题已解决) 参考文章: (1)vue el-tree 同时向后台传递选中和半选节点数据 (回显数据勾选问题已解决) (2)ht ...

  3. 60.实现elementUI表格点击某一行选中勾选框

    前言: 项目中需要做到除了勾选表格第一列勾选框去选中数据外,还要通过点击某一行任何地方,都可以勾选到这条数据,并且要做到选中的数据不能重复,记录一下: (全选和选中勾选框的方法就不写了 这里只写通过点 ...

  4. 点击编辑框全选内容java,js实现鼠标点击文本框自动选中内容的方法

    本文实例讲述了js实现鼠标点击文本框自动选中内容的方法.分享给大家供大家参考.具体如下: 这里使用JS实现鼠标点击时自动选中文本框文本的效果,相信许多朋友都遇到这种功能的,就是当我们点击文本框的时候, ...

  5. 状态输出导航栏html,Vue实现导航栏效果(选中状态刷新不消失)_百厌_前端开发者...

    用 1.首先把这些小图片放到src/assets路径下面(自动base64编码) 2.在data()里边定义一个选中对应的变量isSelect,和循环遍历的数组,数组下面放图标对应的文字,和选中,未选 ...

  6. 元素的选中问题 元素选中的问题 切换复选框选中 全选和全不选

    元素的选中问题 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  7. 原生js做购物车全选选中商品显示价格和小计的计算

    html代码 <div class="contain"><table class="table table-bordered">< ...

  8. html 点击文本框则选中,JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。...

    内容选中事件(onselect) 选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行. 如下代码,当选中用户文本框内的文字时,触发onselect 事件, ...

  9. 点击input,区域选中后外面会出现其他颜色边框去除方式和更改input字体颜色

    点击input,区域选中后外面会出现其他颜色边框去除方式和更改input字体颜色 {border:0;outline:none;} //去除边框 定义和用法 outline (轮廓)是绘制于元素周围的 ...

  10. 使用JavaScript(jQuery或Vanilla)选中/取消选中复选框?

    本文翻译自:Check/Uncheck checkbox with JavaScript (jQuery or Vanilla)? 如何使用JavaScript,jQuery或vanilla选中/取消 ...

最新文章

  1. linux独立应用程序开发,Linux应用程序开发(一)
  2. 2014-11-18--Hadoop的基础学习(五)--编写不同MapReudce程序及其特性(下)
  3. element-ui和semantic-ui冲突的解决方法--局部引入semantic-ui的css
  4. 2.14 文件和目录权限chmod
  5. 组件间数据交互——父组件向子组件传值( props属性值类型) 子组件向父组件传值-携带参数 || 非父子组件间传值
  6. 通过 PhxPaxos 了解 Paxos 原理
  7. 项目用的几种机型参数调查
  8. java 储存过程_Java储存过程
  9. NSString 字符串 操作 常用
  10. Data Structure Problem
  11. Linux SD卡驱动开发(四) —— SD 控制器之真正的硬件操作
  12. php点击验证码,用PHP实现验证码功能
  13. go实现本地文件搜索引擎
  14. 笔记本电脑怎么清理灰尘_笔记本电脑卡顿,运行慢,似中病毒,看这里 小白教你轻松搞定...
  15. 直接选择排序和冒泡排序
  16. MATLAB绘图—三维曲线绘图-(plot3)
  17. 网站实现记住我(自动登录)的方法总结
  18. 【机器学习】极大似然估计、最大后验估计的对比与联系
  19. 如何还原MySQL备份文件.xb
  20. 通俗意义计算机网络安全,计算机网络安全技术问题与策略

热门文章

  1. KeyShot Pro 9 v9.0 安装教程(含下载文件)
  2. 华为系统是计算机类型吗,华为Mate10秒变PC能否开启手机取代PC时代
  3. 查找SAPParameterID_SAP刘梦_新浪博客
  4. 6、TWS API的体系结构和连接
  5. 邮件发送-JavaWeb
  6. 判断用户是否使用手机登录
  7. C++ Primer Plus(学习笔记之——一会儿指南、一会儿指北)
  8. SpringBoot-Mybatis-Plus配置
  9. 官网下载QT不成功解决方案
  10. Java8 Lambda表达式(三)Lambda表达式与Stream API