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>

这样就好了。

相关推荐
灵犀坠几秒前
前端核心知识体系梳理:从Vue 3到现代CSS与JavaScript
前端·javascript·vue.js
lcc1873 分钟前
Vue3 新的组件
前端·vue.js
AskHarries5 分钟前
技术人最深的三大痛点:看见的人不多,说出口的人更少
前端·后端·程序员
星尘库5 分钟前
怎么实现js混淆加密 每隔一段时间 会失效 需要重新加密使用
java·服务器·前端
m***98214 分钟前
Redis6.2.6下载和安装
android·前端·后端
l***370914 分钟前
Docker部署Spring Boot + Vue项目
vue.js·spring boot·docker
LV技术派16 分钟前
这一年,收获很多,办了婚礼,还出了一门前端AI课
前端·程序员·ai编程
我叫张小白。22 分钟前
Vue3 基本生命周期:组件的一生之旅
前端·javascript·vue.js·前端框架·vue3
GISer_Jing27 分钟前
SSE Conf大会分享——UTOO WASM:AI时代的浏览器原生极速研发套件
前端·人工智能·架构·wasm
Q***l68730 分钟前
前端在移动端中的响应式设计
前端