scss给不包含某个规则开头的类名添加颜色

文章讲述了如何在CSS和SCSS中通过属性选择器避免影响ElementUI的el-button组件中default按钮以外的其他状态(如success、info、error)的颜色设置。通过使用`:not()`选择器,可以精确地为不包含特定前缀类名的default按钮设置样式,同时保持其他状态按钮的颜色不变。
摘要由CSDN通过智能技术生成

需求: 默认的el-button的四种状态设置自定义颜色
问题:设置.el-button样式影响到其他success、info、error等按钮的样式
解决方案:default按钮不包含'el-button--'开头的类名就是默认按钮,那给不包含的el-button设置样式就不会影响其他按钮
按钮四种状态:normal(普通状态)、hover(悬停状态)、active(活动状态)和focus(聚焦状态)
css写法

  • 使用属性选择器[class^="el-button-"]来针对所有以“el-bbutton-”开头的类名
  • 设置背景颜色为红色
[class^="el-button--"] {
  background-color: red;
}

scss写法

  • 定义了一个变量 $button-prefix: "el-button--";
  • 使用属性选择器[class^="#{$button-prefix}"], [class*=" #{$button-prefix}"],来选中以 “el-button–” 开头的类名,以及包含空格和 “el-button–” 的类名
[class^="#{$button-prefix}"], [class*=" #{$button-prefix}"] {
  background-color: red;
}

上面两种写法效果:除了Defailt按钮,其他按钮含‘el-button--’l类名都设置成红色按钮了

<button aria-disabled="false" type="button" class="el-button">Default</button>
<button aria-disabled="false" type="button" class="el-button el-button--primary">Primary</button>
<button aria-disabled="false" type="button" class="el-button el-button--success">Success</button>
<button aria-disabled="false" type="button" class="el-button el-button--info">Info</button>
<button aria-disabled="false" type="button" class="el-button el-button--warning">Warning</button>
<button aria-disabled="false" type="button" class="el-button el-button--danger">Danger</button>
$disabledColor: #ccc;
$button-prefix: 'el-button--';
$button-link: 'is-link';
.el-button {
  width: 80px;
  height: 28px;
}
.el-button:not([class^='#{$button-prefix}'], [class*=' #{$button-prefix}'], [class*=' #{$button-link}']):hover,
.el-button:not([class^='#{$button-prefix}'], [class*=' #{$button-prefix}'], [class*=' #{$button-link}']):visited,
.el-button:not([class^='#{$button-prefix}'], [class*=' #{$button-prefix}'], [class*=' #{$button-link}']):focus {
  color: #606266;
  background-color: #f6f6f6;
  border-color: #f6f6f6;
}
.el-button:not([class^='#{$button-prefix}'], [class*=' #{$button-prefix}'], [class*=' #{$button-link}']):active {
  background-color: #ebebeb;
  border-color: #ebebeb;
}

这里活动状态定义了一种灰色,其他状态是另一种灰色

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值