在 style
经常用 scoped
属性实现组件的私有化时,要改变 element-ui
某个深层元素(eg:.el-input__inner
)或其他深层样式时,需要使用 /deep/
,如:
.conBox /deep/ .el-input__inner{
padding:0 10px;
}
注意,/deep/
在 vue 3.0或者新版scss-loader不支持 会报错
如果 /deep/
报错,可采用 ::v-deep
,效果基本一样,有人说 ::v-deep
能加快编译速度,但是我在网上没有找到相关资料,无从验证。
.conBox ::v-deep .el-input__inner{
padding:0 10px;
}
深度作用选择器 >>>
.conBox >>> .el-input__inner{
padding:0 10px;
}
(注意,只作用于css)
但如果是sass/less的话可能无法识别,这时候需要使用 /deep/和::v-deep 选择器。
想修改element-ui某个深层元素也有其他方式解决;
解决方法之一:除非你将 scoped
移除,或者新建一个没有 scoped
的 style
(一个.vue文件允许多个style)
----------------------------------------- 更新 ------------------------------------------
如果项目使用vite的话,会有使用::v-deep的话会有警告⚠️
需改用deep() 即可,如下:
.conBox :deep() {
.el-input__inner{
padding:0 10px;
}