如何在 Antd Pro 框架上实现样式自定义?

news2024/11/15 22:45:45

文章目录

  • 一、前言
  • 二、实操过程


一、前言

Ant Design Pro 是一个企业级中后台前端/设计解决方案,已经有完善的 UI 组件及设计风格,在一些特定项目中,往往涉及到对其调整,来实现独特的 UI 设计,如不同的主题色、布局、卡片等,如何能够实现?

本期一起来跟大家探讨实践操作方法,本次不涉及探讨 Antd 设计系统,仅分享从哪些角度可以对组件进行样式修改。


二、实操过程

本次演示代码环境:

ant design vue 1.7.8

vue antd pro 3.0.2

less 3.0.4

vue/cli 4.5.17

  • 全局修改

1)变量修改

Antd 官网介绍了几种修改已定义变量的方法,在项目里为了方便查看,我个人习惯集中修改 vue.config.js 。

这里可以对任何 Antd 已经定义好的变量进行全局修改。

css: {
  loaderOptions: {
    less: {
      modifyVars: {
        // less vars,customize ant design theme

        'primary-color': '#21B0AF',
        // 'link-color': '#F5222D',
        'border-radius-base': '2px',
        'layout-header-background': '#21B0AF',
        'menu-dark-item-active-bg': '#f3fbfb',
        'menu-dark-submenu-bg': '#21B0AF',
        'card-shadow': '0px 4px 28px rgba(68, 57, 168, 0.15)',
        'card-head-color': '#fff',
        'card-head-background': 'linear-gradient(180deg, #21B0AF 8.33%, #26D3D2 100%)',
      },
      // DO NOT REMOVE THIS LINE
      javascriptEnabled: true,
    },
  },
},

2)超出变量外的修改

对于超出变量外其余的样式覆盖,我通常选在 src/global.js 进行覆盖修改,也可以自己定义文件在 main.js 中引入。

需要注意的是,由于 Antd 组件 css 使用 less ,对控制台中仅选中元素类名修改会由于权重问题不生效,个人一般不建议直接使用 !important,可以参照原组件样式层级结构来修改。

// src/global.js 修改菜单样式
.ant-menu {
  &-dark&-inline &-item,
  &-dark&-inline &-submenu-title {
    border-radius: 20px 0 0 20px;
  }
  &-dark &-item-selected {
    > a,
    > a:hover {
      color: #21b0af;
    }
  }
  &&-dark &-item-selected,
  &-submenu-popup&-dark &-item-selected {
    border-radius: 20px 0 0 20px;
  }
}
  • 单页面修改

单页面修改时需要避免对全局造成污染,需要使用 scoped 局部样式方案。

同时为了覆盖 Antd 组件类名,需使用 scss, less 搭配 /deep/ 进行样式穿透,或使用 css 搭配 <<< 进行样式穿透。

<style lang="less" scoped>
  .ant-pro-pages-account-projects-cardList {
    margin-top: 24px;

    /deep/ .ant-card-meta-title {
      margin-bottom: 4px;
    }

    /deep/ .ant-card-meta-description {
      height: 44px;
      overflow: hidden;
      line-height: 22px;
    }

    .cardItemContent {
      display: flex;
      height: 20px;
      margin-top: 16px;
      margin-bottom: -4px;
      line-height: 20px;

      > span {
        flex: 1 1;
        color: rgba(0,0,0,.45);
        font-size: 12px;
      }

      /deep/ .ant-pro-avatar-list {
        flex: 0 1 auto;
      }
    }
  }
</style>

完成上述操作,我们的样式修改就能够完成了。

以 preview.pro.antdv 官方模板为例,通过修改各变量及css样式可以达到自定义UI效果,以下为简略修改对比:

修改前 ⬇

在这里插入图片描述
修改后 ⬇

在这里插入图片描述
在这里插入图片描述

以上就是本期基于 Ant Design Pro 修改 CSS 实现自定义框架的全部内容了,大家有机会不妨试试!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/171037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帮助台技术员协助的自助服务

对于帮助台技术员例行电话带来成本高居不下的企业来说&#xff0c;最终用户自助服务是一个伟大的解决方案&#xff0c;允许用户解决自己的IT问题。然而&#xff0c;一些企业仍未部署自助服务。例如&#xff0c;即使在Active Directory中维护每个员工的最新个人资料信息是一件乏…

1. Python3的安装与环境搭建

1. 开发环境&#xff1a;Win10 Python3.10.5 PyCharm 2. 安装Python3 下载地址&#xff1a;https://www.python.org/ 运行刚下载的python-3.10.5-amd64.exe&#xff0c;并做以下操作&#xff1a; 然后Next&#xff0c;并进行以下操作&#xff1a; 最后点击Install&#…

会话跟踪技术:Cookie、Session和Token

会话跟踪技术背景&#xff1a;1. Cookie &#xff08;客户端的会话跟踪技术&#xff09;1.1 原理1.2 基本使用1.2.1 服务器发送Cookie1.2.2 服务器获取Cookie1.3 使用细节1.3.1 存活时间1.3.2 存储中文2. Session&#xff08;服务端的会话跟踪技术&#xff09;2.1 原理2.2 基本…

采用高通Qualcomm处理器的手机进EDL 9008模式的办法

由于我们有很多基于 Qualcomm 的设备&#xff0c;其中一些设备可能会古怪地猜测如何进入 EDL 模式&#xff0c;或者如何正确进入。 例如&#xff0c;对于 Alcatel&#xff0c;您必须先按住两个音量键&#xff0c;然后再按住其中一个&#xff0c;对于 CAT B35&#xff0c;您必须…

Python基础(二十六):模块和包简单介绍

文章目录 模块和包简单介绍 一、模块 1、导入模块 2、制作模块

基于Servlet+jsp+mysql开发javaWeb校园图书管理系统

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;或者没有积分想获取项目&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录一、开发背景二、 需求分析三、开发环境四、运行效果五、开发流程工程目…

【Android安全】Google Hardware-backed Keystore | SafetyNet | 远程证明Remote Attestation

Google Hardware-backed KeyStore Attestation 原理及流程 SafetyNet Hardware-backed Attestation SafetyNet Hardware-backed Attestation&#xff1a;使用了Hardware-backed Keystore SafetyNet 支持Software Attestation 和 Hardware-backed Attestation&#xff0c;根据…

五、Web应用开发模式

web应用开发模式 web应用的开发主要有两种模式&#xff1a; 前后端不分离前后端分离 前后端不分离 在互联网早期&#xff0c;web应用开发采用前后端不分离的方式。 它是以后端直接渲染模板完成响应的一种开发模式。 以前后端不分离的方式开发的web应用的架构图如下&#x…

每天15分钟JMeter进阶篇(1):JAVA 取样器的基本使用

每天15分钟JMeter进阶篇&#xff08;1&#xff09;&#xff1a;JAVA 取样器的基本使用前言准备工作创建开发工程POM文件创建根工程创建module开发JAVA取样器构建、部署运行构建JAR包部署和运行写在最后前言 JMETER官方提供了丰富的取样器&#xff0c;可以支持80%的常见测试场景…

传输层协议:UDP协议

简介 用户数据报协议&#xff08;英语&#xff1a;User Datagram Protocol&#xff0c;缩写&#xff1a;UDP&#xff1b;又称用户数据包协议&#xff09;是一个简单的面向数据包的通信协议&#xff0c;位于OSI模型的传输层。该协议由David P. Reed在1980年设计且在RFC 768中被…

CrimeFragment的UI fragment进行管理

用户界面将由一个名为CrimeFragment的UI fragment进行管理。CrimeFragment的 实例将通过一个名为CrimeActivity的activity来托管。CrimeActivity视图由FrameLayout组件组成&#xff0c;FrameLayout组件为CrimeFragment要显示 的视图安排了存放位置。 CrimeFragment 的视图由一个…

Thinkphp QVD-2022-46174 多语言rce

文章目录漏洞介绍vulhub漏洞搭建漏洞利用利用一&#xff1a;写入文件利用二&#xff1a;文件包含漏洞分析参考文章漏洞介绍 Thinkphp&#xff0c;v6.0.1~v6.0.13&#xff0c;v5.0.x&#xff0c;v5.1.x 如果 Thinkphp 程序开启了多语言功能&#xff0c;那就可以通过 get、head…

[从零开始]用python制作识图翻译器·三

AlsoEasy-RecognitionTranslator具体实现开发环境准备和验证下载conda创建开发环境文字识别模块在线模块离线模块机器翻译模块在线模块离线模块GUIGUI-定位模块GUI-截图模块具体实现 开发环境准备和验证 前期测试项目文件已上传到我的仓库。 下载conda conda是python的版本管…

Day863.协程 -Java 并发编程实战

协程 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于协程的内容。 Java 语言里解决并发问题靠的是多线程&#xff0c;但线程是个重量级的对象&#xff0c;不能频繁创建、销毁&#xff0c;而且线程切换的成本也很高&#xff0c;为了解决这些问题&#xff0c;Java SD…

C++设计模式(4)——策略模式

策略模式 亦称&#xff1a; Strategy 意图 策略模式是一种行为设计模式&#xff0c; 它能让你定义一系列算法&#xff0c; 并将每种算法分别放入独立的类中&#xff0c; 以使算法的对象能够相互替换。 问题 一天&#xff0c; 你打算为游客们创建一款导游程序。 该程序的核心…

什么是CNCF云原生

一、CNCF简介 CNCF&#xff1a;全称Cloud Native Computing Foundation&#xff08;云原生计算基金会&#xff09;&#xff0c;成立于2015年12月11日&#xff0c;是一个开源软件基金会&#xff0c;它致力于云原生&#xff08;Cloud Native&#xff09;技术的普及和可持续发展。…

golang 错误处理channel+error真的香

官方推荐golang中错误处理当做值处理&#xff0c; 既然是值那就可以在channel中传输&#xff0c;本文带你看看golang中channelerror来做异步错误处理有多香&#xff0c;看完本文还会觉得golang的错误处理相比java try catch一点优势都没有吗&#xff1f; 场景 如下&#xff0…

LeetCode刷题笔记 - JavaScript(二)

文章目录1.剑指 Offer 60. n个骰子的点数2.面试题67. 把字符串转换成整数3.面试题59 - II. 队列的最大值剑指 Offer 60. n个骰子的点数 面试题67. 把字符串转换成整数 面试题59 - II. 队列的最大值 1.剑指 Offer 60. n个骰子的点数 把n个骰子扔在地上&#xff0c;所有骰子朝上一…

Java运行机制

java的运行机制 Java程序的运行机制分为编写、编译和运行三个步骤。 1.编写 编写是指在Java开发环境中进行程序代码的编辑&#xff0c;最终生成后缀名为“.java”的Java源文件。 2.编译 编译是指使用Java编译器对源文件进行错误排查的过程&#xff0c;编译后将生成后缀名为…

一篇文章带你熟悉Ajax

文章目录一、AJAX 简介二、创建 AJAX 的基本步骤1. 创建 XMLHttpRequest 对象2.向服务器发送请求3.服务器响应状态一、AJAX 简介 ☀️AJAX 的英文全称为 Asynchronous JavaScript And XML&#xff0c;Asynchronous 是异步的意思。何为异步呢&#xff1f;在这里异步是指通过 AJA…