最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • [element ui]如何定制化自己el ui的样式?

    正文概述 掘金(一只大汤姆)   2021-07-02   645

    el ui 组件大大的提高了我们的开发效率,将一些逻辑和样式封装起来,我们可以直接使用,十分的good。但是,对于公司的一些定制化的需求,仅仅靠着组件提供的api是不方便解决的,特别是样式上的问题。
    如果可以修改对el ui组件的样式直接进行修改,那么我们的工作就简化成了修改,而不是重复的造轮子。

    存在的问题

    对于使用vue开发的同学来说(比如说我司),想要在一个页面或者一个component中修改el ui的样式,基本无可避免的会影响整个项目中其他的相同的el ui组件的样式,原因是样式是全局的。如果加上scoped,修改又不会生效。

    解决办法

    经过了一天的思考和实验,走了不少弯路,比如写内联的style 和 在 postcss 中加上 !important等方法,发现指标不治本,而且还是会不经意间影响全局其他的el ui组件,怎么样将修改限制到局部作用页面中?

    利用postcssdom的层级关系,进行针对性的修改。

    例子

    比如有以下代码:

        <el-button type="primary">
          主要按钮
        </el-button>
        <el-button type="primary">
          主要按钮2
        </el-button>
    

    css:

    .button1 {
      opacity: 0.5;
    }
    .button2 {
      width: 100px;
      height: 100px;
    }
    
    

    [element ui]如何定制化自己el ui的样式?

    现在我有两个需求:

    • 按钮1背景改为半透明的;
    • 按钮2外形改为正方形;

    查看组件的api是无法达到这个需求的,那么我直接开始进行修改!

    打开控制台,可以看到以下dom结构:

    [element ui]如何定制化自己el ui的样式?

    如果直接进行修改,肯定会影响另外一个按钮,达不到我们想要的效果。所以,可以如下:

    • 再添加一个class:
    <el-button type="primary" class="button1">
          主要按钮
    </el-button>
    <el-button type="primary" class="button2">
          主要按钮2
    </el-button>
    

    效果如下图:

    [element ui]如何定制化自己el ui的样式?

    • 外面套一层全局唯一的dom:
    <div class="button1">
          <el-button type="primary">
            主要按钮
          </el-button>
    </div>
    <div class="button2">
          <el-button type="primary">
            主要按钮2
          </el-button>
    </div>
    

    postcss:

    .button1 {
      & .el-button {
        opacity: 0.5;
      }
    }
    .button2 {
      & .el-button {
        width: 100px;
        height: 100px;
      }
    }
    

    效果如下:

    [element ui]如何定制化自己el ui的样式?

    这个例子还看不出什么区别,但是有的情况下组件的dom嵌套过深,无法直接添加class,用第二种方法一层一层的去找,也还是可以接受的。
    不管怎么说,都不太优雅,但也提高了一些逻辑代码的复用度,减少了项目复杂度和工期,也未尝不可一试。


    起源地下载网 » [element ui]如何定制化自己el ui的样式?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元