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>

这样就好了。

相关推荐
KenXu2 分钟前
F2C-PTD工具将需求快速转换为代码实践
前端
给月亮点灯|10 分钟前
Vue3基础知识-setup()、ref()和reactive()
前端·javascript·vue.js
芜青11 分钟前
【Vue2手录12】单文件组件SFC
前端·javascript·vue.js
冷冷的菜哥12 分钟前
react实现无缝轮播组件
前端·react.js·typescript·前端框架·无缝轮播
hrrrrb19 分钟前
【Python】字符串
java·前端·python
阿笑带你学前端26 分钟前
Supabase云同步架构:Flutter应用的数据同步策略
前端
Martin-Luo30 分钟前
Vue3 通过json配置生成查询表单
javascript·vue.js·json
梦想CAD控件31 分钟前
(在线CAD平台)网页集成CAD SDK的方法
前端·javascript·github
万少33 分钟前
可可图片编辑 HarmonyOS(6)水印效果
前端·harmonyos
掘金约基奇_33 分钟前
JS-SDK开发企微侧边栏
前端·javascript