修改Ant Design 按钮的样式

简介: 修改Ant Design 按钮的样式

1. 前言

  1. 前几天问到了 Ant Design 如何修改按钮的样式,比如背景色或字体颜色等怎么操作
  2. 相比于粗暴的 CSS 样式覆盖(也被叫做魔改样式),CSS 变量让我们可以更加优雅地自定义组件的样式
  3. css变量基础

  • 先来捋一捋react官方有哪些对 css变量定义的方式
  1. 在 CSS 文件中设置
  2. 直接通过 style 属性设置
  3. 通过全局变量进行设置

2.  在 CSS 文件中设置

  1. 自定义样式className

<Button className='my-button'/>

2.css文件的设置

.my-button {
  --border-radius: 2px;
}

3. 直接通过 style 属性设置

  1. 直接通过组件的 style 属性,简单粗暴,适合小范围的调整:

<Button style={{
  '--border-radius': '2px'
}}/>

4. 通过全局变量进行设置

  1. 也可以"局部性"地进行调整,只需要把对应的 CSS 变量添加到对应的父级节点上

:root:root {
  --adm-button-border-radius: 2px;
}


  • 具体 修改Ant Design 按钮的样式

5.  使用自定义类名


import { Button } from 'antd';
import 'antd/dist/antd.css';
import './CustomButton.css'; // 导入自定义样式文件
const CustomButton = () => {
  return <Button className="custom-button">Custom Button</Button>;
};
export default CustomButton;
  1. CustomButton 组件中使用了 className 属性,并设置为 custom-button,
  2. 然后在 CustomButton.css文件中定义了对应的样式规则。

6. 使用内联样式:

  1. 对特定的按钮进行样式修改,也可以使用内联样式的方式直接在组件中设置样式。

import { Button } from 'antd';
const CustomButton = () => {
  const buttonStyle = {
    backgroundColor: 'red',
    color: 'white',
    border: 'none',
    // 更多样式属性...
  };
  return <Button style={buttonStyle}>Custom Button</Button>;
};
export default CustomButton;

7. 使用自定义主题:

  1. 主题定制

8. 如何移除两个汉字之间的空格

  1. 根据 Ant Design设计规范要求,我们会在按钮内(文本按钮和链接按钮除外)只有两个汉字时自动添加空格,如果你不需要这个特性,可以设置 ConfigProvider 的 autoInsertSpaceInButton 为 false

9. 如何避免 300ms 的点击延迟?

  1. 方案-1 head 中添加

<meta name="viewport" content="width=device-width">
  1. 方案-2 增加全局样式

html {
  touch-action: manipulation;
}

参考资料

  1. react FAQ
  2. react css变量

初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
存储 JavaScript API
vue3+ant design vue 自定义文件上传和自定义上传进度条
1.关键点是Upload组件中customRequest的API,它能通过覆盖默认的上传行为,可以自定义自己的上传实现(具体可看官方文档); 2.通过在Upload组件中绑定progress实现。 下面是详细代码
4062 0
|
编译器 定位技术 API
|
12月前
|
存储 人工智能 监控
在 onerror 事件处理函数中获取错误对象的详细信息
【10月更文挑战第26天】可以在 `onerror` 事件处理函数中全面地获取错误对象的详细信息,从而更有效地进行错误诊断、调试和处理,提高WebSocket应用的稳定性和可靠性。需要注意的是,不同浏览器对错误对象的具体实现和属性支持可能会略有不同,在实际应用中可能需要根据目标浏览器的特性进行适当的兼容性处理。
|
传感器 人工智能 算法
AI技术在智慧工地中的应用有哪些?
人工智能技术(AI)通过算法和数据让计算机模拟人类智能,完成复杂任务。在智慧工地中,AI技术覆盖施工管理全流程,提升效率与安全性。主要应用包括:人员智能化管理(身份识别、行为监测)、施工安全管控(危险行为识别、设备监控、环境预警)、设备与物料管理(预测性维护、物料追溯)、施工效率与质量提升(进度调度、质量检测)及智能决策支持(大数据分析、虚拟培训)。这些技术推动建筑行业从经验驱动向数据驱动转型,助力无人化作业与全生命周期管理。
1488 0
|
自然语言处理 前端开发 JavaScript
🔥3.4K star!阿里出品对话式UI神器,轻松打造专业级聊天界面!
ChatUI 是阿里巴巴团队开源的对话式 UI 设计语言与 React 组件库,专为构建智能对话界面而生。它凝聚了阿里在智能客服领域的最佳实践,提供“最新、最全、最优质”的开源项目和高效工作学习方法。核心功能亮点包括智能消息流处理、无障碍访问认证、企业级主题定制、多端自适应布局、国际化双引擎和智能输入辅助。技术架构基于 React 17 + TypeScript 4,支持 Less + CSS Variables 样式方案,Rollup + Babel 构建工具,以及 Jest + React Testing Library 测试体系。
3901 5
|
JavaScript
Vue3按钮(Button)
这是一个高度可定制的按钮组件,支持多种属性设置,包括按钮类型、形状、图标、尺寸、背景透明度、波纹颜色、跳转地址、打开方式、禁用状态、加载状态及指示符样式等。预览图展示了不同配置下的按钮样式变化。组件通过Vue实现,并提供了丰富的自定义选项以适应各种场景需求。
1237 1
Vue3按钮(Button)
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 测试技术
vue配置生产环境.env.production、测试环境.env.development
该文章介绍了如何在Vue项目中配置和使用不同的环境变量文件(.env、.env.production、.env.development)以适应开发、测试和生产环境,并通过修改`package.json`中的scripts来实现不同环境的打包。
4794 0
vue配置生产环境.env.production、测试环境.env.development
|
JavaScript
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
这篇文章介绍了在Vue项目中安装node-sass和sass-loader时遇到的版本冲突问题,并提供了解决这些问题的方法,包括在不降低node版本的情况下成功安装node-sass。
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题