element-ui的菜单样式重构

 element-ui的菜单样式重构,需要了解结构,再做定制。

ul.myMenuName .el-menu
  li.el-submenu
    div.el-submenu__title //-----------------1 级菜单
    ul.el-menu .el-menu--inline
      li.el-submenu
        div.el-submenu__titile //------------1-1级菜单
        ul.el-menu .el-menu--inline
          li.el-menu-item //-----------------1-1-1级菜单
      li.el-menu-item //---------------------1-2级菜单
  li.el-menu-item  //------------------------2 级菜单

  .el-menu-item // 没有子节点的叶子节点,不论几级
  .el-submenu__titile //有子节点的父级节点

 

想要做成下面的效果,就得了解结构,再做定制样式

<el-menu
      default-active="1-1-1"
      class="zk_menuShow">
        <el-submenu index="1">
          <template slot="title">
            <i class="el-icon-location"></i>
            <span>1 级菜单</span>
          </template>
          <el-submenu index="1-1">
            <template slot="title">1-1 级菜单</template>
            <el-menu-item index="1-1-1">1-1-1 级菜单</el-menu-item>
          </el-submenu>
          <el-menu-item index="1-2">1-2 级菜单</el-menu-item>
          <el-menu-item index="1-3">1-3 级菜单</el-menu-item>
          <el-menu-item index="1-4">1-4 级菜单</el-menu-item>
        </el-submenu>
        <el-menu-item index="2">
          <i class="el-icon-menu"></i>
          <span slot="title">2 级菜单</span>
        </el-menu-item>
      </el-menu>
//整体侧面
.el-menu{
  border-right: none;
}
//最终选中
.el-submenu .el-menu-item{
  &:hover {
    background: #EEF1F7!important;
    color:#284CC0!important;
  }
  &:active{
    background: #EEF1F7!important;
    color:#284CC0!important;
  }
  &.is-active{
    background: #284CC0!important;
    color:#EEF1F7!important;
  }
}
//一级菜单子叶子的选择
.el-menu-item{
  &:hover {
    background: #EEF1F7!important;
    color:#284CC0!important;
  }
  &:active{
    background: #EEF1F7!important;
    color:#284CC0!important;
  }
  &.is-active{
    background: #284CC0!important;
    color:#EEF1F7!important;
  }
}

//下拉内容 前面竖线
.el-menu--inline{
  position: relative;
  width: 90%;
  margin-left:10%;
  &:before{
    content:"";
    position: absolute;
    width: 2px;
    height: 100%;
    background: #eee;
    left:-10px;
    top:0;
  }
}
//所有带下拉的行
.el-submenu__title{
  width: 100%;
  height: 36px;
  line-height: 36px;
  margin-top: 8px;
  padding-left:1px!important;
  border-radius: 5px;
}
.el-menu--inline>.el-submenu>.el-submenu__title{
  padding-left:8px!important;
}
//最后选中的叶子菜单
.el-submenu .el-menu-item{
  min-width: 100px;
  width: 100%;
  height: 36px;
  line-height: 36px;
  margin-top: 8px;
  padding-left:8px!important;
  border-radius: 5px;
}
//一级子叶子
.el-menu-item{
  min-width: 100px;
  width: 100%;
  height: 36px;
  line-height: 36px;
  margin-top: 8px;
  padding-left:1px!important;
  border-radius: 5px;
}
//选择后显示
.zk_menuShow{
  margin: 0 10px;
  box-sizing: border-box;
  //选择子节点父节点样式
  .is-active {
    >.el-submenu__title {
      background: #EEF1F7!important;
      color:#284CC0!important;
      border-radius: 5px;
      i{
        color:#284CC0!important;
      }
    }
  }
}
//一级菜单字体加粗
.zk_menuShow>.el-submenu>.el-submenu__title{
  font-weight: bold;
}
//旋转图标变色
.el-submenu__title .el-submenu__icon-arrow{
  color:#284CC0!important;
}
//旋转
.el-submenu>.el-submenu__title .el-submenu__icon-arrow{
  transform: rotateZ(270deg);
}
.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{
  transform: rotateZ(360deg);
}

 以上作,为一次经验记录,下次有需要再做补充。

欢迎大家指正!~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值