el-dialog使用::v-deep()穿透设置样式不生效,解决办法亲测有效!

场景:

javascript 复制代码
    <el-dialog
      v-model="dialogVisible"
      width="800px"
      :before-close="beforeClose"
      append-to-body
      :close-on-click-modal="false"
      title="增加文档"
    >
     <template #footer>
      <div style="text-align:center">
        <el-button type="primary" @click="saveFieldOption" :disabled="confirmUpload">
          确 定 
        </el-button>
        <el-button @click="uploadDialogClose">取 消</el-button>
      </div>
    </template>
    </el-dialog>

    <style lang="scss" scoped>
    ::v-deep(.el-dialog__header) {
      border-bottom: 1px solid #E7E7E7 !important;
      color:#3D3D3D !important;
    }
    ::v-deep(.el-dialog__body) {
      padding: 24px 40px  12px !important;
    }
    </style>

如上:我想给header插槽增加下边框 ,并且想改变el-dialog__body盒子的内边距,但是不生效。

解决方案

el-dialog加个,在不带scope 的**<style></style>**中设置样式,如下:

javascript 复制代码
    <el-dialog
      class="dialog-bar"
    >
    </el-dialog>

样式:

javascript 复制代码
<style lang="scss">
.dialog-bar{
  .el-dialog__body {
    padding: 24px 40px  12px !important;
  }
  .el-dialog__header {
    border-bottom: 1px solid #E7E7E7 !important;
    color:#3D3D3D !important;
  }
}
</style>

实现效果如下:

注意

  • <style></style> 中如果不添加scope,则其中的样式会在所有页面生效,所以务必给该el-dialog添加一个全局都不会重复的类名或者Id属性
  • 可以与<style scoped></style> 同时存在于同一个组件,两者并不会冲突,除了el-dialog之外的其他样式还是应该写在**<style scoped></style>** 中,如下图:
javascript 复制代码
<style lang="scss">
.dialog-bar{
  .el-dialog__body {
    padding: 24px 40px  12px !important;
  }
  .el-dialog__header {
    border-bottom: 1px solid #E7E7E7 !important;
    color:#3D3D3D !important;
  }
}
</style>

<style lang="scss" scoped>
//除了el-dialog之外的其他样式
</style>

好了,本文就到这里吧,**++点个关注++**再走嘛~

🚀 个人简介:7年开发经验,现任职某国企前端负责人,分享前端相关技术与工作常见问题~

💟 作 者:前端菜鸟的自我修养❣️

📝 专 栏:前端常见问题汇总,避坑大全

🌈 若有帮助,还请 关注➕点赞➕收藏,不行的话我再努努力💪💪💪

相关推荐
VIP_CQCRE2 小时前
用 Ace Data Cloud 快速接入 OpenAI 图像生成 API:GPT-Image-2 与 Nano Banana 统一调用
ai·openai·api·ace data cloud·image generation
梦帮科技4 小时前
GRAVIS v4.0:基于Web的极速套利架构设计与实时数据流实现
前端·人工智能·rust·自动化·区块链·智能合约·数字货币
爱勇宝5 小时前
办公资料反复修改、补传、交接混乱,我做了个桌面工具来解决这件事
前端·后端·程序员
万亿少女的梦1685 小时前
基于Python的高考志愿填报辅助系统设计与实现
java·spring boot·python·mysql·vue
万亿少女的梦1685 小时前
基于SpringBoot与Vue的历史博物馆展品展示与游客管理系统设计
spring boot·mysql·vue·系统设计·博物馆管理系统
一只游鱼5 小时前
MiMo-V2.5-Pro-UltraSpeed实测
ai
微信开发api-视频号协议6 小时前
企业微信外部群开发自动化实践过程
java·前端·微信·自动化·企业微信·ipad
甲维斯6 小时前
Fable5:20美金的顶级设计师!
前端·人工智能
nbtang20266 小时前
Karpathy AutoResearch 拆解:AI 编程 Loop 怎么落地
人工智能·ai·loop·claude code
kyriewen6 小时前
我同时用了 Claude Code、Cursor 和 Codex,说说三个工具的真实差距——2026 年选错工具比不用 AI 更浪费时间
前端·ai编程·claude