首页 > 其他分享 >第三方UI组件库的样式修改

第三方UI组件库的样式修改

时间:2023-12-04 15:13:41浏览次数:31  
标签:el 样式 deep 修改 UI 组件

一、场景:

       一般来说,我们在使用第三方UI组件库(如:vant,element-plus等)时,UI组件库自带的样式不能满足用户的个性化需求时,就需要我们开发人员自己动手对组件库的局部样式进行修改。

二、修改UI组件库的顺序和方法

1、修改主题
1、修改主题:每个ui组件库都有专门的修改主题的解释,如vant。Vant 3 - Lightweight Mobile UI Components built on Vue

2、使用props
如:element-plus的el-buton组件,可以通过 修改type属性的取值,来改变外观样式

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

3、添加 class/style
<el-button type="success" class="mybutton" style="height: 250px;">按钮</el-button>
​
<style lang="css" scoped>
.mybutton{
    border-radius: 20px;
}
   
</style>

如果某个属性覆盖不了,就加属性的权重  .mybutton{ border-radius: 20px !important; }!!!

4、查看元素,查询相关样式名,修改编译后的样式
<el-button type="success" class="mybutton" style="height: 250px;">按钮</el-button>
​
<style lang="css" scoped>
.mybutton{
    border-radius: 20px;
}
.el-button{
    width: 600px;
}
</style>
5、样式穿透(覆盖ui组件库的样式名)
1)、 .a >>> .b { /* ... */ } 深度选择器;

如果实在不行的话,可以考虑给外面加一个容器。

即: 自定义的样式名 >>> ui组件库的样式名

注意:这个写法sass和less不支持。

<template>
    <el-table class="mytable" :data="tableData" style="width: 100%">
      <el-table-column prop="date" label="Date" width="180" />
      <el-table-column prop="name" label="Name" width="180" />
      <el-table-column prop="address" label="Address" />
    </el-table>
  </template>
  
  <script  setup>
  const tableData = [
    {
      date: '2016-05-03',
      name: 'Tom',
      address: 'No. 189, Grove St, Los Angeles',
    },
    {
      date: '2016-05-02',
      name: 'Tom',
      address: 'No. 189, Grove St, Los Angeles',
    }
  ]
  </script>
​
<style scoped>
.mytable >>> .el-table_1_column_1  .cell{
    background-color: red;
}
</style>

2)、 /deep/ ui组件选择器 { }

/deep/ .a{
​
    ***
}

sass和less的写法:
 
<style lang="scss" scoped>
.a{
  /deep/ .b { 
  /* ... */
 }
}
</style>

scoped 影响 (不加scoped,deep不生效)

3)、::v-deep ui组件选择器 { }

::v-deep .a{
    ***
}
<el-button type="success" class="mybutton" style="height: 250px;">按钮</el-button><style lang="css" scoped>
.mybutton{
    border-radius: 20px;
}
::v-deep .el-button span{
    width: 100px;
    height: 30px;
    background-color: aqua;
}
​
.el-button{
    width: 600px;
}
</style>
 
sass和less的写法:
<style lang="scss" scoped>
.a{
 ::v-deep .b { 
  /* ... */
 }
} 
</style>

/deep/在某些时候会报错,::v-deep更保险并且编译速度更快.

由于UI组件库内部的样式我们不是完全清楚,所以,以上方法,都可以尝试,那种方式可以,就用那种。

其实,你可以打开chrome浏览器的元素(elements),查看不同组件的内部标签结构和样式,先做做尝试,再在代码中写,同时,也能够了解UI组件库内部的样式情况。

标签:el,样式,deep,修改,UI,组件
From: https://www.cnblogs.com/limou956259/p/17874975.html

相关文章

  • pipreqs 自动找到项目的所有组件和模块版本
    pipinstallpipreqs(适用于djangoFlask等)pipreqs./--encoding=utf-8找到当前项目目录下的所有组件和依赖H:\MyFlask>pipreqs./--encoding=utf-8十六.Flask基本项目目录搭建和pipreqs模块(组件和模块版本)virtualenv模块(创建虚拟环......
  • 滚动条自定义样式
    .ant-table-content{&::-webkit-scrollbar{height:10px!important;}&::-webkit-scrollbar-thumb{border-radius:0!important;}&::-webkit......
  • [oeasy]python0002_终端_CLI_GUI_编程环境_游戏_真实_元宇宙
    回忆 上次了解了python语言的特点历史悠久功能强大深受好评已成趋势 3大主流操作系统macwindowslinux      添加图片注释,不超过140字(可选)  我们选择linux作为基础系统 ......
  • 深入理解HarmonyOS UIAbility:生命周期、WindowStage与启动模式探析
    本文分享自华为云社区《深入理解HarmonyOSUIAbility:生命周期、WindowStage与启动模式探析》,作者:柠檬味拥抱。UIAbility组件概述UIAbility组件是HarmonyOS中一种包含UI界面的应用组件,主要用于与用户进行交互。每个UIAbility组件实例对应最近任务列表中的一个任务,可以包含多个页......
  • 前端组件wolfTable的style格式文档
    此文档记录的是wolf-table的style格式文档,如果你找的是x-data-spreadsheet,那么请查阅这个文档https://www.cnblogs.com/WilsonZhu/p/17858411.htmlwolf-table的格式输入只有一个方式,通过调用addStyle以及cell函数来进行格式的改变例子如下:importTablefrom'@wolf-table......
  • vue 弹窗组件
    vue弹窗<el-dialog></el-dialog>可以在其中编写所需的弹窗显示的内容也可以在其中放组件标签作为弹窗放一个组件的话,例:<el-dialogv-model="addGoodsDialog":title="addGoodsTitle"width="60%"destroy-on-close="true":close-on-p......
  • 使用PyUIC将.ui文件转换为.py文件时出现 <?xml version="1.0" encoding="UTF-8"?>
    弄好相应第三方库在Pycharm中的配置后,完成窗口界面后生成.ui文件使用PyUIC将.ui文件转换为.py文件时出现<?xmlversion="1.0"encoding="UTF-8"?>   ^SyntaxError:invalidsyntax查了网上方法没解决,最后将PyUIC配置的Program路径从python.exe改为pyuic5.exe,问题解决......
  • 仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能
    仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能一、引言随着电子商务的快速发展,用户体验成为了竞争的关键因素。在众多的电商网站中,如京东和淘宝,商品列表筛选功能为用户提供了便捷的途径来找到心仪的商品。本文将详细介绍如何使用cc-widget、uni-icons和xg-list......
  • 一篇随笔学习React18组件通信与插槽
    了解什么是jsx->https://www.cnblogs.com/senior-shef/p/17872695.html一、了解props1、什么是propsReact支持两种组件,DOM组件和React组件。DOM组件指的是所有的HTML和SVG标签。比如说,如果我们想要使用标签,在React中,可以设置src和alt等属性。这些属性与纯HTML写法相同。在Rea......
  • 自定义精美商品分类列表组件 侧边栏商品分类组件 category组件(适配vue3)
    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率......