当前位置: 首页 > news >正文

【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. 变体&#xff08;Variants&#xff09;2. 颜色&#xff08;Colors&#xff09; 四、垂直按钮组的优势1. 空间利用2. 可读性与易用性3. 视觉…...

DDR5 的优势与应用

DDR5 是新一代 DRAM 内存&#xff0c;具有一系列强大的功能&#xff0c;可提升可靠性、可用性和可维护性 (RAS)&#xff0c;降低能耗并显著提高性能。请查看下方表格&#xff0c;了解 DDR4 和 DDR5 之间的一些主要特性差异。 DDR5 的优势 特性/选项 DDR4DDR5DDR5 优势数据速率…...

STM32 - 笔记

1 STM32的串口通信 【keysking的STM32教程】 第8集 STM32的串口通信_哔哩哔哩_bilibili 波特律动 串口助手...

基于QT实现的简易WPS(已开源)

一、开发工具及开源地址&#xff1a; 开发工具&#xff1a;QTCreator &#xff0c;QT 5 开源地址&#xff1a; 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. 创建表单类表单字段解释&#xff1a; 4. 渲染表单渲染模板CSRF 保护 5. 表单验证6. 处理错误7. 完整示例8. 结论 Flask-WTF 表单处理详细教程 Flask-WTF 是 Flask 框架的一个扩展&#xff0c;简化了 We…...

C语言 | Leetcode C语言题解之第330题按要求补齐数组

题目&#xff1a; 题解&#xff1a; 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…...

无人机之测绘行业篇

无人机倾斜摄影技术凭借快速高效、机动灵活、成本低等优势&#xff0c;正慢慢颠覆传统测绘的作业方式&#xff0c;已成为测绘行业的“新宠”&#xff0c;将倾斜摄影技术应用到无人机上&#xff0c;实际上就是在做一个三维模型&#xff0c;而建立起来的这个模型更加真实&#xf…...

Java编程:每日挑战

目录 题目1.一个抽象类并不需要其中所有的方法都是抽象的。&#xff08; &#xff09;2.下面有关java hashmap的说法错误的是&#xff1f;A. HashMap 的实例有两个参数影响其性能&#xff1a;“初始容量” 和 “加载因子”。B. HashMap 的实现不是同步的&#xff0c;意味着它不…...

【自动驾驶】ubuntu server安装桌面版

目录 安装桌面版当锁屏界面使用root用户登录错误时 这里环境一开始是ubuntu20.04服务器版本 安装桌面版 sudo apt-get update sudo apt-get upgrade apt-get install -y ubuntu-desktop # 如果你不想安装一些附加的程序&#xff0c;可用以下命令 sudo apt install --no-instal…...

前端模块化-手写mini-vite

前言 本文总结了一些关于 Vite 的工作原理&#xff0c;以及一些实现细节。 本节对应的 demo 可以在这里找到。 什么是 Vite Vite 是一个基于浏览器原生 ES imports 的开发服务器。利用浏览器去解析 imports&#xff0c;在服务器端按需编译返回&#xff0c;完全跳过了打包这个…...

SpringBoot中fastjson扩展: 自定义序列化和反序列化方法实战

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…...

【QT】鼠标按键事件 - QMouseEvent QKeyEvent

qt 事件 事件1. 事件概念2. 事件的处理3. 按键事件&#xff08;1&#xff09;单个按键&#xff08;2&#xff09;组合按键 4. 鼠标事件&#xff08;1&#xff09;鼠标单击事件&#xff08;2&#xff09;鼠标释放事件&#xff08;3&#xff09;鼠标双击事件&#xff08;4&#x…...

纯手工在内网部署一个Docker私有仓库

纯手工在内网部署一个Docker私有仓库 下载Docker仓库的镜像上传仓库的镜像导入仓库的镜像启动仓库镜像配置客户端的Docker上传镜像到本地仓库从本地仓库拉取镜像 下载Docker仓库的镜像 这个镜像不太好找&#xff0c;有需要的可以从下面的地址中下载。 通过百度网盘分享的文件…...

农林经济管理学报

《农林经济管理学报》是由江西省教育厅主管、江西农业大学主办、北京大学中国农业政策研究中心和中国人民大学农业与农村发展学院学术支持的农林经管类学术双月刊&#xff0c;以主要刊载农林经济政策与理论&#xff0c;反映农林经济管理前沿动态和研究成果&#xff0c;开展学术…...

【初阶数据结构题目】16.用队列实现栈

用队列实现栈 点击链接答题 思路&#xff1a; 出栈&#xff1a;找不为空的队列&#xff0c;将size-1个数据导入到另一个队列中。 入栈&#xff1a;往不为空队列里面插入数据 取栈顶元素&#xff1a; 例如&#xff1a; 两个队列&#xff1a; Q1&#xff1a;1 2 3Q2&#xff1a;…...

使用 OpenAI Whisper v2 模型进行中英文混合语音识别

https://huggingface.co/openai/whisper-large-v2 使用 OpenAI Whisper 模型进行中英文混合语音识别 在本篇博客中,我们将详细介绍如何使用 OpenAI 的 Whisper 模型进行中英文混合语音识别,并设置 Hugging Face 的缓存路径。 简介 Whisper 是 OpenAI 提供的一个强大的自动…...

代码随想录算法训练营day37|动态规划part05

完全背包问题&#xff1b; 第一题&#xff1a;518. Coin Change II class Solution {public int change(int amount, int[] coins) {//递推表达式int[] dp new int[amount 1];//初始化dp数组&#xff0c;表示金额为0时只有一种情况&#xff0c;也就是什么都不装dp[0] 1;fo…...

Git 如何提交代码

一. 简介 前面几篇文章简单学习了 git常用命令&#xff0c;文章如下&#xff1a; Git使用过程中涉及的几个区域-CSDN博客 Git常用命令的使用-CSDN博客 本文学习一下 如何使用 git命令&#xff0c;将本地代码提交到远程仓库。 二. 使用 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设计模式学习笔记 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、策略模式 策略模式定义了算法族&#xff0c;分别封装起来&#xff0c;让它们之间可以互相替换&#xff0c;此模式让…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...