【Material-UI】按钮组:垂直按钮组详解
文章目录
- 一、按钮组概述
- 1. 组件介绍
- 2. 基本用法
- 二、垂直按钮组的应用场景
- 1. 导航菜单
- 2. 表单操作
- 3. 选项切换
- 三、按钮组的样式定制
- 1. 变体(Variants)
- 2. 颜色(Colors)
- 四、垂直按钮组的优势
- 1. 空间利用
- 2. 可读性与易用性
- 3. 视觉一致性
- 五、注意事项
- 1. 无障碍支持
- 2. 交互反馈
- 3. 布局调整
- 六、总结
Material-UI 是一个广泛使用的 React UI 框架,提供了丰富的组件以提升开发效率和用户体验。本文将详细介绍 Material-UI 中的
ButtonGroup组件的垂直排列(Vertical Group)功能。通过使用orientation属性,可以将按钮组从默认的水平排列改为垂直排列,这在特定的用户界面设计中非常实用。
一、按钮组概述
1. 组件介绍
ButtonGroup 组件用于将一组按钮整齐排列,形成一个统一的操作组。默认情况下,按钮组是水平排列的,但通过设置 orientation="vertical" 属性,可以将按钮组垂直排列,使其更符合特定布局需求。
2. 基本用法
以下是一个简单的示例,展示了如何使用 ButtonGroup 组件来创建垂直排列的按钮组:
import * as React from 'react';
import Button from '@mui/material/Button';
import ButtonGroup from '@mui/material/ButtonGroup';
import Box from '@mui/material/Box';const buttons = [<Button key="one">One</Button>,<Button key="two">Two</Button>,<Button key="three">Three</Button>,
];export default function GroupOrientation() {return (<Boxsx={{display: 'flex','& > *': {m: 1,},}}><ButtonGroup orientation="vertical" aria-label="Vertical button group">{buttons}</ButtonGroup><ButtonGrouporientation="vertical"aria-label="Vertical button group"variant="contained">{buttons}</ButtonGroup><ButtonGrouporientation="vertical"aria-label="Vertical button group"variant="text">{buttons}</ButtonGroup></Box>);
}
在上述代码中,我们创建了三个不同样式的垂直按钮组,分别使用了不同的 variant 属性来展示不同的按钮样式。
二、垂直按钮组的应用场景
1. 导航菜单
垂直按钮组在侧边导航栏(Sidebar)中非常常见。它能够在有限的水平空间中提供多个选项,方便用户导航。
<ButtonGroup orientation="vertical" aria-label="Vertical navigation group"><Button>Dashboard</Button><Button>Settings</Button><Button>Profile</Button>
</ButtonGroup>
2. 表单操作
在表单提交界面中,垂直按钮组可以用于将提交、重置等操作按钮集中排列,便于用户操作。
<ButtonGroup orientation="vertical" aria-label="Form action group"><Button>Submit</Button><Button>Reset</Button>
</ButtonGroup>
3. 选项切换
在需要提供多个选项的场景中,如切换不同的视图或模式,垂直按钮组能够清晰地展示所有选项,便于用户选择。
<ButtonGroup orientation="vertical" aria-label="View mode group"><Button>List View</Button><Button>Grid View</Button><Button>Map View</Button>
</ButtonGroup>
三、按钮组的样式定制
1. 变体(Variants)
ButtonGroup 组件支持多种按钮样式变体,包括 "text"、"outlined" 和 "contained"。这些变体决定了按钮的外观,如是否有边框、填充背景色等。
- Text:无边框和背景色的按钮,适用于低优先级操作。
- Outlined:带边框但无填充背景的按钮,适用于次要操作。
- Contained:填充背景的按钮,适用于主要操作。
<ButtonGroup orientation="vertical" variant="outlined" aria-label="Outlined vertical button group"><Button>Option 1</Button><Button>Option 2</Button><Button>Option 3</Button>
</ButtonGroup>
2. 颜色(Colors)
ButtonGroup 组件支持多种颜色选择,包括 "primary"、"secondary"、"default" 等。可以根据主题或设计需求选择合适的颜色。
<ButtonGroup orientation="vertical" color="secondary" aria-label="Secondary color vertical button group"><Button>Home</Button><Button>About</Button><Button>Contact</Button>
</ButtonGroup>
四、垂直按钮组的优势
1. 空间利用
垂直按钮组在需要节省水平空间时非常有用,尤其是在移动端或需要侧边栏导航的场景中。
2. 可读性与易用性
垂直排列的按钮组能够清晰地展示所有选项,不容易被忽略,提升用户的操作体验。
3. 视觉一致性
在特定的 UI 设计中,垂直按钮组可以与其他垂直元素(如文本、列表)保持一致,提升整体视觉效果。
五、注意事项
1. 无障碍支持
在使用 ButtonGroup 时,应为每个按钮提供合适的 aria-label 属性,以确保使用屏幕阅读器的用户能够顺利使用。
2. 交互反馈
确保按钮组在不同的状态下(如悬停、点击)提供足够的交互反馈,以提升用户体验。
3. 布局调整
根据界面布局和用户需求,可以使用 sx 属性或自定义样式调整按钮组的间距、对齐方式等,确保按钮组在各个设备和分辨率下的良好表现。
六、总结
Material-UI 的 ButtonGroup 组件通过支持垂直排列,为开发者提供了更灵活的布局选项。垂直按钮组在导航菜单、表单操作和选项切换等场景中具有广泛的应用。通过合理设置按钮组的变体和颜色,可以提升界面的视觉效果和用户体验。希望本文对您在使用 ButtonGroup 组件时有所帮助,并能够在实际项目中充分发挥其潜力。
推荐:
- JavaScript
- react
- vue

相关文章:
【Material-UI】按钮组:垂直按钮组详解
文章目录 一、按钮组概述1. 组件介绍2. 基本用法 二、垂直按钮组的应用场景1. 导航菜单2. 表单操作3. 选项切换 三、按钮组的样式定制1. 变体(Variants)2. 颜色(Colors) 四、垂直按钮组的优势1. 空间利用2. 可读性与易用性3. 视觉…...
DDR5 的优势与应用
DDR5 是新一代 DRAM 内存,具有一系列强大的功能,可提升可靠性、可用性和可维护性 (RAS),降低能耗并显著提高性能。请查看下方表格,了解 DDR4 和 DDR5 之间的一些主要特性差异。 DDR5 的优势 特性/选项 DDR4DDR5DDR5 优势数据速率…...
STM32 - 笔记
1 STM32的串口通信 【keysking的STM32教程】 第8集 STM32的串口通信_哔哩哔哩_bilibili 波特律动 串口助手...
基于QT实现的简易WPS(已开源)
一、开发工具及开源地址: 开发工具:QTCreator ,QT 5 开源地址: GitHub - Whale-xh/WPS_official: Simple WPS based on QTSimple WPS based on QT. Contribute to Whale-xh/WPS_official development by creating an acc…...
Flask-WTF 表单处理详细教程(第六阶段)
目录 Flask-WTF 表单处理详细教程1. 安装 Flask-WTF2. 创建 Flask 应用3. 创建表单类表单字段解释: 4. 渲染表单渲染模板CSRF 保护 5. 表单验证6. 处理错误7. 完整示例8. 结论 Flask-WTF 表单处理详细教程 Flask-WTF 是 Flask 框架的一个扩展,简化了 We…...
C语言 | Leetcode C语言题解之第330题按要求补齐数组
题目: 题解: int minPatches(int* nums, int numsSize, int n) {int patches 0;long long x 1;int index 0;while (x < n) {if (index < numsSize && nums[index] < x) {x nums[index];index;} else {x << 1;patches;}}retu…...
无人机之测绘行业篇
无人机倾斜摄影技术凭借快速高效、机动灵活、成本低等优势,正慢慢颠覆传统测绘的作业方式,已成为测绘行业的“新宠”,将倾斜摄影技术应用到无人机上,实际上就是在做一个三维模型,而建立起来的这个模型更加真实…...
Java编程:每日挑战
目录 题目1.一个抽象类并不需要其中所有的方法都是抽象的。( )2.下面有关java hashmap的说法错误的是?A. HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。B. HashMap 的实现不是同步的,意味着它不…...
【自动驾驶】ubuntu server安装桌面版
目录 安装桌面版当锁屏界面使用root用户登录错误时 这里环境一开始是ubuntu20.04服务器版本 安装桌面版 sudo apt-get update sudo apt-get upgrade apt-get install -y ubuntu-desktop # 如果你不想安装一些附加的程序,可用以下命令 sudo apt install --no-instal…...
前端模块化-手写mini-vite
前言 本文总结了一些关于 Vite 的工作原理,以及一些实现细节。 本节对应的 demo 可以在这里找到。 什么是 Vite Vite 是一个基于浏览器原生 ES imports 的开发服务器。利用浏览器去解析 imports,在服务器端按需编译返回,完全跳过了打包这个…...
SpringBoot中fastjson扩展: 自定义序列化和反序列化方法实战
❃博主首页 : 「码到三十五」 ,同名公众号 :「码到三十五」,wx号 : 「liwu0213」 ☠博主专栏 : <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 :…...
【QT】鼠标按键事件 - QMouseEvent QKeyEvent
qt 事件 事件1. 事件概念2. 事件的处理3. 按键事件(1)单个按键(2)组合按键 4. 鼠标事件(1)鼠标单击事件(2)鼠标释放事件(3)鼠标双击事件(4&#x…...
纯手工在内网部署一个Docker私有仓库
纯手工在内网部署一个Docker私有仓库 下载Docker仓库的镜像上传仓库的镜像导入仓库的镜像启动仓库镜像配置客户端的Docker上传镜像到本地仓库从本地仓库拉取镜像 下载Docker仓库的镜像 这个镜像不太好找,有需要的可以从下面的地址中下载。 通过百度网盘分享的文件…...
农林经济管理学报
《农林经济管理学报》是由江西省教育厅主管、江西农业大学主办、北京大学中国农业政策研究中心和中国人民大学农业与农村发展学院学术支持的农林经管类学术双月刊,以主要刊载农林经济政策与理论,反映农林经济管理前沿动态和研究成果,开展学术…...
【初阶数据结构题目】16.用队列实现栈
用队列实现栈 点击链接答题 思路: 出栈:找不为空的队列,将size-1个数据导入到另一个队列中。 入栈:往不为空队列里面插入数据 取栈顶元素: 例如: 两个队列: Q1:1 2 3Q2:…...
使用 OpenAI Whisper v2 模型进行中英文混合语音识别
https://huggingface.co/openai/whisper-large-v2 使用 OpenAI Whisper 模型进行中英文混合语音识别 在本篇博客中,我们将详细介绍如何使用 OpenAI 的 Whisper 模型进行中英文混合语音识别,并设置 Hugging Face 的缓存路径。 简介 Whisper 是 OpenAI 提供的一个强大的自动…...
代码随想录算法训练营day37|动态规划part05
完全背包问题; 第一题:518. Coin Change II class Solution {public int change(int amount, int[] coins) {//递推表达式int[] dp new int[amount 1];//初始化dp数组,表示金额为0时只有一种情况,也就是什么都不装dp[0] 1;fo…...
Git 如何提交代码
一. 简介 前面几篇文章简单学习了 git常用命令,文章如下: Git使用过程中涉及的几个区域-CSDN博客 Git常用命令的使用-CSDN博客 本文学习一下 如何使用 git命令,将本地代码提交到远程仓库。 二. 使用 git命令将本地代码提交到远程仓库中 …...
SpringBoot-application.properties为对象赋值
简单对象赋值 第一种方式 首先让该Bean交由Spring管理,然后加上ConfigurationProperties(prefix"前缀") <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId>&l…...
Head First设计模式学习笔记
Head First设计模式学习笔记 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 一、策略模式 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...
Selenium 查找页面元素的方式
Selenium 查找页面元素的方式 Selenium 提供了多种方法来查找网页中的元素,以下是主要的定位方式: 基本定位方式 通过ID定位 driver.find_element(By.ID, "element_id")通过Name定位 driver.find_element(By.NAME, "element_name"…...
多模态学习路线(2)——DL基础系列
目录 前言 一、归一化 1. Layer Normalization (LN) 2. Batch Normalization (BN) 3. Instance Normalization (IN) 4. Group Normalization (GN) 5. Root Mean Square Normalization(RMSNorm) 二、激活函数 1. Sigmoid激活函数(二分类&…...
