本文介绍: vue3使用ElementPlus消息elmessage样式生效或者被遮盖(z-index
问题1:elmessage自定义样式生效

想改弹出框的位置时不生效使用elmessage自定义类的customclass属性也不行。原因应该是加了scoped后使用到里面样式dom添加datavxxxx这种属性防止css污染,但是message生成dom没有添加datavxxx属性的,所以样式无效

解决方式js动态设置(就是麻烦一点)
 this.$message({
          message:'登录失败',
          center:true,
          type:'error',
          duration:0
        });
        var el=document.querySelector('.el-message');
        if(el) el.style.cssText = 'margin-top: 60px;'

我用vue3+TypeScript

ElMessage({
            showClose: true,
            message: '登录成功',
            type: 'success'
          })
          var el: any = document.querySelector('.el-message')
          if (el) el.style.cssText = 'margin-top: 60px;'
问题2:el-message被遮罩层挡住

在有半透明遮罩层的情况下触发message时其层级(z-index)在遮罩层之下

解决办法:在上面代码的基础上加z-index
ElMessage({
            showClose: true,
            message: '登录成功',
            type: 'success'
          })
          var el: any = document.querySelector('.el-message')
          if (el) {
            el.style.cssText = 'margin-top: 60px;'
            el.style.zIndex = 10000
          }

如果还是被遮罩层挡住很可能是父元素层级的问题需要父级加个z-index属性调整父元素层级,比如

<div style="z-index: 1">
  <div style="z-index: 10">son</div>
</div>
<div style="z-index: 2"></div>

我的是A(父)组件包含了B(子)组件,给A的样式加了z-index小的值就可以

原文地址:https://blog.csdn.net/M31Gargantua/article/details/129480332

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22856.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注