Element Plus Menu二级菜单的样式修改 el-popper

博客主要围绕Vue中el-menu样式修改展开,介绍了el-menu原始样式与修改后的样式,重点给出代码实现。包括在el-sub-menu标签下使用自带属性popper-class写入自定义类修改样式,且该自定义类需写在App.vue中才能获取到,还提及了样式代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

el-menu原始样式:

修改后:

代码实现:

页面代码(element文档中的例子代码进行修改后的):

<template>
  <el-menu
    :default-active="activeIndex"
    class="el-menu-demo"
    mode="horizontal"
    @select="handleSelect"
  >
    <el-menu-item index="1">菜单</el-menu-item>
    <el-sub-menu index="2" popper-class="test">
      <template #title>我的</template>
      <el-menu-item index="2-1">登录</el-menu-item>
      <el-menu-item index="2-2">注册</el-menu-item>
      <el-menu-item index="2-3">修改个人信息</el-menu-item>
    </el-sub-menu>
    <el-menu-item index="3" disabled>联系我们</el-menu-item>
    <el-menu-item index="4">其他</el-menu-item>
  </el-menu>
  <div class="h-6" />
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const activeIndex = ref('1')
const activeIndex2 = ref('1')
const handleSelect = (key: string, keyPath: string[]) => {
  console.log(key, keyPath)
}
</script>

1、要在el-sub-menu标签下,写入自带属性popper-class="",写入自定义类修改样式。

2、popper-class的自定义类需要写在App.vue中才能获取到

样式代码:

.test {
  border: none !important;
  .el-menu {
    // 修改二级菜单整个背景颜色
    background-color:lightsteelblue;
    // 二级菜单中的子选项
    .el-menu-item {
      background-color: transparent !important;
      color: #fff !important;
      font-weight: 400;
      width: 100%;
      font-size: 14px;
      text-align: center;
      // 被选择的子选项
      &:not(.is-disabled):hover {
        color: rgb(226, 195, 237) !important;
        background-color: #7d85ca !important;
        width: 100%;
        text-align: center;
      }
    }
  }
  // 弹出的二级菜单
  .el-menu--popup {
    min-width: 6.5rem !important;
    min-height: 7rem !important;
  }
}

Vue 和 SCSS 结合使用时,如果你想修改 Element Plus 中的 `.el-menu--horizontal` 样式,首先你需要做到以下几点: 1. **安装依赖**:确保你在项目中已经安装了 Vue CLI 和 SCSS 预处理器。如果还没有,可以运行 `npm install -D node-sass sass-loader vue-cli-plugin-vuex` 或者 `yarn add node-sass sass-loader vue-cli-plugin-vuex`。 2. **配置 SCSS**:在 `vue.config.js` 文件中添加 SCSS 的配置,例如: ```javascript module.exports = { css: { loaderOptions: { sass: { data: ` @import "~element-plus/lib/theme-chalk/index.scss"; `, }, }, }, }; ``` 3. **创建主题文件**:在 `src/assets/scss` 目录下(假设存在),创建一个新的 SCSS 文件,比如 `custom-theme.scss`,然后针对 `.el-menu--horizontal` 类编写自定义样式: ```scss // custom-theme.scss .el-menu--horizontal { /* 这里添加你想要修改样式 */ background-color: #your-color; color: #your-text-color; /* 可能需要调整的其他属性 */ } ``` 4. **应用新主题**:在需要应用这个主题的地方,如 App.vue 或者某个具体的组件中,导入并使用自定义主题: ```html <style scoped> @import './assets/scss/custom-theme.scss'; </style> ``` 5. **刷新样式**:保存更改后,通过刷新浏览器或者使用 `npm run serve` 或 `yarn dev` 来看到更新后的效果。 记得检查是否覆盖了 Element Plus 自带的主题,以免影响其他功能。如果你有特殊需求,也可以考虑使用 CSS Modules 或者 Less 等其他预处理器。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值