vue3 antdv 修改tabs的tabpane的样式,以达到我们项目中需要效果样式,或者根据系统定义全局主题颜色来自动调整颜色。

1、先上个效果图:

2、先来找一下这个tabs.tabpane的样式名className

二种状态下的tabpane的样式,就找出来了,其实就是二个div

未选中:ant-tabs-tab 

选中:ant-tabs-tab ant-tabs-tab-active

tabpane的 ant-tabs-tab-btn。

3、修改样式,以实现我们项目中需要的样式:

//标签激活状态样式
  ::v-deep .ant-tabs-tab-active {
    background-color: v-bind(getThemeColor) !important; // 激活状态下的背景颜色
    color: #fff !important; // 激活状态下的文本颜色
    border-radius: 30px;
    padding: 10px;
    height: 35px;
    line-height: 35px;
  }

  ::v-deep .ant-tabs-tab-active .ant-tabs-tab-btn {
    color: #fff !important;
  }

  //标签未激活状态样式
  ::v-deep .ant-tabs-tab {
    background-color: rgb(189, 189, 189);
    border-radius: 30px;
    padding: 10px;
    height: 35px;
    line-height: 35px;
    color: rgba(128, 128, 128, 1);
  }

  ::v-deep .ant-tabs-tab .ant-tabs-tab-btn {
    color: rgba(128, 128, 128, 1);
  }

这里的getThemeColor是一个computed属性,可以修改成一个固定的颜色比如 #ff0000红色。

这里的样式一定要使用::v-deep来修改,否则不生效。

参考:

Ant Design Vue - <a-tabs>默认样式修改 去掉标签下标,去掉标签下长灰线条,改变标签激活与未激活状态的不同样式_a-tabs样式-CSDN博客

Vue.js项目,如果你想要将全局样式提取到单独的SCSS文件,并通过Vuex store的状态动态更改背景颜色,你可以按照以下步骤操作: 1. **创建全局SCSS文件**: - 在`src/assets/scss` 或类似目录下创建一个名为`global.scss` 的文件,这里会定义你的全局样式,包括背景颜色等。 ```scss // global.scss $body-color: #fff; //默认颜色 .bg-color { background-color: $body-color; } ``` 2. **导入并引用变量**: 在你需要应用动态颜色的地方,如`App.vue`或者`Layout.vue`引入这个SCSS文件,并使用`@import`指令。 ```scss // App.vue or Layout.vue (template) <style lang="scss" scoped> @import '~assets/scss/global'; </style> <script setup> import { ref } from 'vue' import { useStore } from '@/store' const bgColorRef = ref('#your-default-color') // 初始化背景色 function updateBgColor() { const store = useStore() const dynamicColor = store.state.yourColorState // 根据store获取动态颜色 bgColorRef.value = dynamicColor } // 在需要改变背景色的时候调用这个函数 useEffect(() => { updateBgColor() }, [dynamicColor]) //监听store变化 </script> ``` 3. **Vuex状态管理**: - 在`store`设置一个状态(例如`yourColorState`),并监听其变化,当值改变时触发`updateBgColor`函数更新背景颜色。 ```javascript // store/index.js export default new Vuex.Store({ state: { yourColorState: '#your-dynamic-color', // 初始值 }, mutations: { changeColor(state, color) { state.yourColorState = color } }, actions: { changeColorAction({ commit }, color) { commit('changeColor', color) } }, getters: { getColor: state => state.yourColorState } }) ``` 4. **触发颜色变更**: - 每当你想根据store的状态改变背景色时,在组件内调用相应的action或者直接在store里改变颜色状态。 现在,`$body-color`已经可以在模板根据store的变化动态调整背景颜色了。每当`yourColorState`在store更新时,`updateBgColor`函数会被调用,进而更新全局背景颜色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值