根据状态更改button样式(vue)

哈哈哈其实就是Css操作

template
<template>
<button
              :class="
                device.type == '在线'
                  ? 'on-line'
                  : device.type == '离线'
                  ? 'off-line'
                  : 'unbound'
              "
            >
              {{ device.type }}
     </button>
</template>
script
export default {
  name: "app",
  data() {
    return {
    device:{
    type :'在线'
  },
};

CSS

<style scoped lang="scss">
@mixin status {
  width: 37px;
  height: 18px;
  border-radius: 5px;
  font-size: 9px;
  font-weight: 400;
  line-height: 15px;
  color: rgba(255, 255, 255, 1);
}
.on-line {
  background: rgba(67, 207, 124, 1);
  @include status();
}
.off-line {
  @include status();
  background: rgba(212, 48, 48, 1);
}
//unbound 未绑定的样式
.unbound {
  background: rgba(255, 141, 26, 1);
  width: 45px !important;
  @include status();
}
</style>

效果图

这里插入图片描述

Vue中,如果一个`<el-button>`组件的样式被全局样式表(通常位于`src/styles/global.css`或`main.css`这样的地方)所覆盖,你可以通过以下几种方式来调整局部样式的优先级: 1. **CSS权重(Specificity)**: - 给需要修改的按钮添加更高的CSS选择器权重。比如,如果你正在`components/button.vue`中修改样式,可以尝试使用`.your-component .el-button`这种更具体的类选择器,使其优先于全局的`.el-button`。 ```css .your-component .el-button { /* 修改你的样式 */ } ``` 2. **Sass(SCSS)嵌套或变量**: - 如果你在使用预处理器如Sass,可以创建一个局部变量并导入到组件里,然后使用该变量来控制颜色、大小等。这将不会影响全局样式。 ```scss $myButtonColor: #ff0000; // 设置局部颜色 // components/button.vue <style scoped> .el-button { color: $myButtonColor; } </style> // global.scss 或 main.scss $button-color: #000; // 全局颜色 .el-button { @import 'components/button.vue'; } ``` 3. **使用`:v-deep`(Vue 2.x)或`:global`(Vue 3.x)**: - 在Vue 2中,可以使用`:v-deep`来限制作用域,告诉浏览器这个样式仅应用于指定元素。在Vue 3中,`:global`也有类似的作用。 ```css .your-component > .el-button { /* 或者 */ :v-deep .el-button { /* 或 */ :global .el-button { /* 修改你的样式 */ } } } ``` 4. **CSS模块化** (如`@import`只引入需要的样式) 或 `scoped`属性: - 使用`scoped`属性可以确保组件内的样式仅对其自身可见,避免污染全局样式。 ```html <template> <div class="your-component"> <el-button>...</el-button> </div> </template> <style scoped> /* 在这里修改 .your-component .el-button样式 */ </style> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值