家教网站开发日志(二)

替换Switch开关的字体颜色

官方默认的switch开关是这样的

官方提供两个属性供开发者修改swith开关的背景颜色 

 

但似乎没有专门的属性修改两侧label的字体颜色,同时直接对<el-switch>使用CSS中的color属性修改也是没有效果的

但是打开游览器的开发者工具

 注意红框部分,可以看到switch开关两侧的字体是由特定的<span>包裹的

两侧字体的<span>元素共有的class为.el-switch_label

其中左侧标签即登入的class为.el-switch_label--left

且右侧标签即注册的class为.el-switch_label--right

而当switch处于未开启状态时(处于登入一侧时):登入的class后有一段.is--active的字段 ,而注册的class没有

而当switch处于开启状态时(处于注册一侧时):注册的class后有一段.is--active的字段 ,而登入的class没有(如下图)

 

得出如下结论: 

.el-switch_label:直接控制两侧的字体

.el-switch_label--left:控制左侧的字体

.el-switch_label--right:控制右侧的字体

在相应的字段后添加.is--active即激活状态(switch在哪一侧)

 示例

<style>
.switch .el-switch__label {
  color: white;
}

.switch .el-switch__label.is-active {
  color: #409EFF;
}
</style>

.switch 是<el-switch>的类选择器(如下图)

<el-switch>的类标签未激活状态时为.el-switch .switch;激活状态时为.el-switch .switch .is-checked

ps:别写在创建组件自带的<style scoped>中,而应新写一对不带scoped的<style>

scoped的作用是使其CSS样式仅作用于当前组件(即私有的),而当需修改第三方组件库时,组件中的scoped就会阻碍我们修改第三方组件库的样式

但是这样修改即修改了组件的默认颜色,导致项目的作用该组件的使用修改后的样式,应对组件添加相应的选择器,来实现修改特定的组件而避免上述情况的发生

Switch的事件

 官方提供了专门的事件change,例如

<el-switch v-show="showSwitch"
    v-model="value"
    active-text="注册"
    class="switch"
    inactive-text="登入"
    @change="trans($event)"
>

//<script>的method中
trans(state) {
      if(state){
        //登入组件的路由
        this.$router.push('/enter/register', () => {})
    }else if(!state){
        //注册组件的路由
        this.$router.push('/enter/login', () => {})
    }
},

关于专递的参数$event,可以简单理解为事件是否发生即switch是否开启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值