element-plus中el-dialog使用::v-deep()穿透设置样式不生效踩坑记录

场景:

html 复制代码
    <el-dialog
      v-model="dialogVisible"
      width="50%"
      :before-close="beforeClose"
      append-to-body
      draggable
      center
      title="标题"
    >
    <template #footer>
        <span class="dialog-footer">
          <el-button type="primary" @click="handlePublish">确 定</el-button>
          <el-button @click="beforeClose">取 消</el-button>
        </span>
      </template>
    </el-dialog>
    <style scope>
    ::v-deep(.el-dialog__header) {
	    border-bottom: none;
 	 }
 	::v-deep(.el-dialog__body) {
   	 padding: 20px 20px 0;
 	 }
  	::v-deep(.el-dialog__footer) {
  	  padding: 10px 20px 20px;
   	 border-top: none;
 	 }
    </style>

如上:我想去掉插槽自带的下边框和上边框,但是不生效。

解决方案

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

html 复制代码
    <el-dialog
      class="tip-dialog"
    >
    </el-dialog>

样式:

css 复制代码
<style lang="scss">
.tip-dialog {
  .el-dialog__header {
    border-bottom: none;
  }
  .el-dialog__body {
    padding: 20px 20px 0;
  }
  .el-dialog__footer {
    padding: 10px 20px 20px;
    border-top: none;
  }
}
</style>

这样就好了。

相关推荐
尤水就下4 分钟前
聊聊 Prompt 是怎么一路进化到 Harness 的
前端·人工智能·ai编程
李溪白5 分钟前
深入 JavaScript 作用域:从变量提升到执行上下文的底层逻辑
前端
想风9 分钟前
Claude Code 实用技巧工作坊 —— Boris Cherny
前端·后端·github
梦想blog10 分钟前
Claude Code + Chrome MCP:让浏览器自动化测试更简单
前端·chrome·自动化·mcp
YHHLAI11 分钟前
React `useState` 深入浅出
前端·javascript·react.js
夜猫子小强14 分钟前
手搓一个「本地邮件摘要」工具:零依赖、数据不出电脑
前端
PBitW15 分钟前
Element plus 自定义列顺序 —— 求指点
前端·element
绿岛之北15 分钟前
Electron 安全第五章:网络请求安全
前端·electron
深漂的华哥17 分钟前
Ruoyi-Vue-Plus(V5.6.2) 开发环境搭建
java·前端·spring boot·后端·spring·ruoyi
YIAN20 分钟前
TS 面试必考题:type 与 interface 的 6 大核心区别,90% 的人答不全
前端·typescript