在element-plus中想要多选框(Checkbox)的功能,但是想要单选框(Radio)的圆形样式如何实现

在element plus中想要多选框(Checkbox)的功能,但是想要单选框(Radio)的圆形样式如何实现

原因

在完成一个业务需求时,需要一个框进行选择或者取消

element plus中的多选框(Checkbox)可以满足这个需求

在element-plus中想要多选框(Checkbox)的功能,但是想要单选框(Radio)的圆形样式如何实现_第1张图片

但是不行,设计稿是根据单选框(Radio)样式出的,下面这个样子

image-20230907110912275

可是这个单选框又不能点击取消选择,还是不满足

想直接改功能,但感觉有点麻烦,所以直接上样式,将多选框方形样式改成圆形!

实现

首先检查组件样式

在element-plus中想要多选框(Checkbox)的功能,但是想要单选框(Radio)的圆形样式如何实现_第2张图片

发现该元素由el-checkbox__inner控制

先将其改成圆形

:deep .el-checkbox__inner {
  border-radius: 50%;
}

:这里的:deep为深度作用选择器,因为我在项目中使用了 scoped 的缘故

然后检查发现中间的对号是after伪元素

在element-plus中想要多选框(Checkbox)的功能,但是想要单选框(Radio)的圆形样式如何实现_第3张图片

这里就很简单了,只要改变after将对号换成圆圈就可以了

加入下面这段样式即可实现

:deep .el-checkbox__inner::after {
  transform: translate(-50%, -50%) scale(1) !important;
  width: 4px;
  height: 4px;
  border-radius: 50% !important;
  background-color: var(--el-color-white);
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transition: transform 0.15s ease-in;
}

题外话

这里可能不会如何画出来,教大家一个偷懒小方法

检查radio的样式,找到其样式的after,复制粘贴

在element-plus中想要多选框(Checkbox)的功能,但是想要单选框(Radio)的圆形样式如何实现_第4张图片
可能还有点不一样,改一下border-radius为50%,完成!

你可能感兴趣的:(element,plus,vue.js,javascript,前端,elementui)