菜单

按钮元素

相关源文件

目的与范围

本文档详细介绍了Semantic UI中的按钮元素,这是一个允许用户触发操作的基础UI组件。它涵盖了按钮的结构、状态、变体和自定义选项。有关按钮相关组件(如按钮组)的信息,请参阅核心UI组件

概述

按钮元素是提供用于触发操作的可点击界面的关键UI组件。Semantic UI以一致的样式、状态和众多变体来实现按钮,以适应不同的设计需求。

来源: src/definitions/elements/button.less20-57 src/themes/default/elements/button.variables8-70

核心结构

按钮元素由.ui.button类定义,具有以下关键属性

来源: src/definitions/elements/button.less24-57 src/themes/default/elements/button.variables9-16

HTML 结构

一个基本的按钮可以用最少的标记来实现

要创建一个带有图标的更复杂的按钮

按钮状态

按钮有几种状态可以为用户提供视觉反馈

状态管理CSS 类描述关键属性
默认.ui.button正常外观背景: #E0E1E2,颜色: rgba(0, 0, 0, 0.6)
悬停.ui.button:hover鼠标悬停在按钮上时背景: #CACBCD
重点.ui.button:focus按钮获得焦点时背景: #CACBCD
激活.ui.active.button按下状态背景: #C0C1C2
已禁用.ui.disabled.button无法交互不透明度: 0.45,指针事件: none
加载.ui.loading.button显示加载动画光标: 默认,颜色: 透明

来源: src/definitions/elements/button.less60-210 src/themes/default/elements/button.variables86-132

加载状态动画

加载状态使用CSS动画创建旋转加载效果

来源: src/definitions/elements/button.less130-187 src/themes/default/elements/button.variables86-132

按钮类型

Semantic UI提供了几种特殊的按钮类型

动画按钮

动画按钮在悬停时使用过渡来显示内容

来源: src/definitions/elements/button.less225-326

带标签的按钮

带标签的按钮将按钮与标签组合成一个组件

来源: src/definitions/elements/button.less378-428

图标按钮

图标按钮强调图标

来源: src/definitions/elements/button.less580-599 src/definitions/elements/button.less684-698

带标签的图标按钮

在各种布局中结合标签和图标

来源: src/definitions/elements/button.less819-867

社交按钮

社交媒体平台的预制按钮

社交按钮类型包括

  • Facebook
  • Twitter
  • Google Plus
  • LinkedIn
  • YouTube
  • Instagram
  • Pinterest
  • VK

来源: src/definitions/elements/button.less430-579

按钮变体

颜色变体

Semantic UI提供语义化和非语义化的颜色变体

语义化颜色非语义化颜色
主要红光
Secondary (次要)Orange (橙色)
正例Yellow (黄色)
Negative (负面)Olive (橄榄色)
绿光
Teal (青色)
蓝光
Violet (紫罗兰色)
Purple (紫色)
Pink (粉色)
Brown (棕色)
Grey (灰色)
Black (黑色)

来源: src/themes/default/elements/button.variables258-317 src/themes/default/globals/site.variables222-249

尺寸变体

按钮尺寸范围从迷你到超大

尺寸类别字体大小
.ui.mini.button0.78571429rem
.ui.tiny.button0.85714286rem
.ui.small.button0.92857143rem
.ui.button (默认)1rem
.ui.large.button1.14285714rem
.ui.big.button1.28571429rem
.ui.huge.button1.42857143rem
.ui.massive.button1.71428571rem

来源: src/definitions/elements/button.less642-683 src/themes/default/globals/site.variables105-117 src/themes/default/globals/site.variables393-420

基本按钮

基本按钮具有更简单的样式,只有边框和文本

来源: src/definitions/elements/button.less704-762 src/themes/default/elements/button.variables195-231

反转按钮

反转按钮专为深色背景设计

来源: src/definitions/elements/button.less332-375 src/themes/default/elements/button.variables188-193

其他变体

  • 紧凑型: 减少了内边距以提高空间效率
  • 圆形: 圆形按钮
  • 浮动型: 左浮动或右浮动按钮
  • 流线型: 占据可用宽度
  • 切换式: 用于切换状态的特殊样式

来源: src/definitions/elements/button.less600-931

按钮组

可以使用.ui.buttons类将按钮分组在一起

来源: src/definitions/elements/button.less76-85 src/themes/default/elements/button.variables72-80

与其他组件的集成

菜单中的按钮

在菜单中使用时,按钮会获得特殊的定位

来源: src/definitions/collections/menu.less143-150 src/themes/default/collections/menu.variables98-102

定制

按钮可以通过 Semantic UI 的主题系统高度定制。关键变量定义在

src/themes/default/elements/button.variables

重要的自定义变量包括

类别关键变量
核心外观@backgroundColor, @textColor, @fontWeight
尺寸和内边距@verticalPadding, @horizontalPadding
边框和圆角@borderRadius, @boxShadow
状态@hoverBackgroundColor, @focusBackgroundColor, @activeBackgroundColor
动画@transition, @animationDuration

自定义按钮颜色的示例

来源: src/themes/default/elements/button.variables8-362 src/themes/default/globals/site.variables53-58

CSS 结构与实现

按钮元素通过清晰的 CSS 结构实现,该结构处理

  1. 通过 .ui.button 实现基础样式
  2. 通过伪类实现状态样式(悬停、激活、焦点)
  3. 通过附加类实现变体
  4. 定位和布局选项

CSS 特异性经过仔细管理,以确保样式能够正确级联。

来源: src/definitions/elements/button.less20-957

最佳实践

  • 使用语义按钮来执行具有语义含义的操作(主要、积极、消极)
  • 恰当使用颜色变体来传达含义
  • 考虑在空间受限的界面中使用图标按钮
  • 使用 .ui.buttons 类将相关按钮组合在一起
  • 为耗时操作提供加载状态
  • 为不可用操作使用禁用状态

浏览器兼容性

按钮元素使用标准的 CSS 属性,并在需要时应用适当的浏览器前缀。它可在所有主流浏览器上运行,包括

  • Chrome
  • Firefox
  • Safari
  • Edge
  • Internet Explorer 11 (视觉上略有差异)