最近在软件开发中使用的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>