02月14日,2022

scss中利用::v-deep穿透覆盖修改element-ui的el-menu菜单、el-card卡片等组件的样式

最近在软件开发中使用的element-ui的框架,在使用el-menu菜单、el-card卡片等组件的时候,根据设计需要对默认的行高及背景进行覆盖修改,修改了很多次都没发现有效。放在一边卡了三四天,今天突然看vue-admin-element的框架时候,::v-deep在做样式修改,发现可使用穿透修改样式问题。

解决:在当前的vue文件样式部分加入穿透指令,如下

::v-deep .el-submenu__title{
      height: 35px !important;
      line-height: 35px !important;
    }
总结:

1.如果当前软件开发项目选用的是css原生样式,那么可以直接使用 >>> 穿透修改,如

<style scoped>
    .lenian >>> .lizuo { 
     /* ... */
    }
  </style>
2.如果当前软件开发项目中前端选用了预处理器 scss 、sass、less 操作符 >>> 可能因为无法编译而报错 。
此时可以改用 /deep/,如下

注意:vue-cli3以上版本不可以
  <style scoped>
    /*使用法1*/
      .liaonian {
       /deep/ .lee { 
        /* ... */
       }
      } 
      /*使用法2*/
      .lizuo /deep/ .liaonian { 
        /* ... */
       }
    </style>
3.如果当前软件开发中前端使用了预处理器(sass,stylus等等)都可以使用 ::v-deep穿透指令
 <style scoped>
   	/*用法1*/
    .liaonian{
     ::v-deep .lee { 
      /* ... */
     }
    } 
    /*用法2*/
    .lizuo ::v-deep .lee {
      /* ... */
    }
    </style>


本文链接:https://www.liaonian.com.cn/info_13.html

-- EOF --