IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> ElementUI(一):解决messageBox的样式问题直接修改会影响全局 -> 正文阅读

[JavaScript知识库]ElementUI(一):解决messageBox的样式问题直接修改会影响全局

一、问题描述

在使用MessageBox弹框时,采用直接调用$msgbox方法,设置弹框样式遇到两个问题:
1.直接使用全局(非scoped)样式,可以直接对内部元素改样式:别的地方样式也改变了
2.使用scoped属性+/deep/深度选择器,不行,因为是弹框,没有设置class不能深度到里面
3.使用customClass属性,可以设置样式,然后在下面新写一个style(不要scoped),可以完美实现,并且不影响其他组件的使用

二、实现

2.1主要是添加 customClass: ‘persdsd’,属性

      this.$msgbox({
        message: h('messageBoxP', null, null),
        showCancelButton: true,
        confirmButtonText: '退出认证',
        cancelButtonText: '人工选择',
        cancelButtonClass: 'messageBoxP_cancelBtn',
        confirmButtonClass: 'messageBoxP_confirmBtn',
        closeOnClickModal: false,
        customClass: 'persdsd',
        beforeClose: (action, instance, done) => {
          if (action === 'cancel') {
            // instance.cancelButtonLoading = true
            // instance.cancelButtonText = '执行中...'
            done()
            this.selectMjVisible = true
            // instance.cancelButtonLoading = false
          } else {
            done()
            this.$router.push('/home')
          }
        }
      }).catch(err => err)

在这里插入图片描述

2.2在下面新创建一个style

在这里插入图片描述

2.3 编写上面添加的customClass: ‘persdsd’,属性

.persdsd {
  padding-bottom: 0 !important;
  border: none !important;
  .el-message-box__content {
    padding: 0 !important;
  }
  .el-message-box__btns {
    height: 80px;
    background-color: #465979;
    text-align: center;
    .el-button {
      height: 45px;
      width: 160px;
      font-size: 20px;
    }
    .messageBoxP_cancelBtn {
      color: #3395f0;
      background-color: #465979;
      border: 1px solid #3395f0;
    }
    .messageBoxP_confirmBtn {
      color: #fff;
      background-color: #f58194 !important;
      border: #f58194;
    }
  }
}

在这里就不用使用深度选择器(/deep/)了,可以直接正常使用,并且不影响其他页面组件

2.4 验证

在这里插入图片描述
别的地方并不会影响到
影响到的是下面这种情况
在这里插入图片描述

三、结论

如果是简单的非弹框在html代码里面有实际代码的组件,可以使用深度选择器
但是面对弹框类型的,没有实际html的,我们需要添加一个customClass属性,然后在下面创建非scoped的style来使用,这时候就不用深度选择器了

另外:直接使用MessageBox没有封装过的,可以传入组件,上面的示例就是我传入的组件

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:16:33  更:2021-08-05 17:16:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 9:49:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码