谈谈layer弹窗自定义样式,防止样式冲突问题


如果在一个页面中存在两个以上的layer弹窗,那么当我们修改其中一个弹窗的默认样式的话,其他的弹窗就会受到影响,今天就来谈谈怎么样去避免样式冲突。

layer自定义弹窗样式

问题情境:

  在一个全局页面中存在多个layer.open({});

layer.open({
                 type: 2,
                 title: '创建群',
                 area: ['520px', 'auto'],
                 fixed: false, //不固定
                 maxmin: true,
                 shade: 0,
                 skin: 'layui-layer-rim',
                 content: ['index1.html','no']
             });

我们知道在layer现在支持的两个你默认皮肤是:

  1. layui-layer-lan
  2. layui-layer-molv

  由于是默认的skin,所以在开发的时候难免需要自定义一些样式。但是如果一个页面中存在两个以上的弹窗时,由于引用的css样式都需要合并到同一个以css为后缀名的文件中,那么自定义样式的时候会发生样式之间的冲突。 
  这边提供的方法是在你自定义样式的class名前面加一个skin的class名:

.layui-layer-rim .layui-layer-title{
            height: 28px!important;
            line-height: 28px!important;
            background: #5AC4FF!important;
            color: #fff!important;
            border: 0!important;
        }
        .layui-layer-rim .layui-layer-title>span{
            top: 0!important;
            left: 125px!important;
            cursor: pointer!important;
        }

在网上有一片文章的方法是这样的也可以尝试:

layer.open({
                 type: 2,
                 title: '添加好友',
                 area: ['520px', 'auto'],
                 fixed: false, //不固定
                 maxmin: true,
                 shade: 0,
                 skin: 'addFri',
                 content: ['index1.html','no']
             });

css文件夹中的样式

body .addFri .layui-layer-title{
            height: 28px!important;
            line-height: 28px!important;
            background: #5AC4FF!important;
            color: #fff!important;
            border: 0!important;
        }
        body .addFri .layui-layer-title>span{
            top: 0!important;
            left: 125px!important;
            cursor: pointer!important;
        }

skin是自定义出来的名字叫做:addFri。

这边推荐使用第一种方法,亲自测试有效,相对也比较简单!

 

原文引用  ALLEN的博客


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM