CSS按钮生成器

CSS 按钮生成器把可视化设置变成一条可直接粘贴的规则。一个按钮只需要 background-color、color、padding 和 border-radius;边框是可选的,padding 先写垂直值再写水平值。例如:padding: 12px 24px; border-radius: 8px; background-color: #2563eb; color: #ffffff,得到一个圆角蓝色按钮,其文字对比度为 5.17:1,达到 WCAG AA 级。

预览

无障碍检查

文字对比度

实际渲染尺寸
px 高

自定义

快速模板

生成的代码

嵌入此工具

× px

                        

💡 集成提示

复制嵌入代码并粘贴到您网站的HTML中。响应式版本会自动适应所有屏幕尺寸。

0 个评分

热门工具

没有更多工具
探索所有工具

如何用 CSS 做一个按钮?

先定字号,其余尺寸都从它推导。垂直内边距决定高度(高度 = 2 x 垂直内边距 + 2 x 边框宽度 + 1.2 x 字号,1.2 是本生成器写进每条规则的行高),水平内边距决定宽度,border-radius 负责圆角。下面五套配方都不带边框,因此边框项为零;若加上 2px 边框,表中每个高度都会增加 4px。这五套配方几乎覆盖了普通页面上的所有按钮。

常见的 CSS 按钮尺寸、滑块生成的声明,以及每套配方在无边框时的渲染高度。
配方 font-size padding border-radius 高度 典型用途
14px 6px 12px 6px 29 px 表格行内操作与密集工具栏
中(默认) 16px 12px 24px 8px 43 px 表单、卡片以及页面上的大多数操作
18px 16px 32px 10px 54 px 首屏与定价页的行动号召按钮
胶囊 16px 12px 28px 50px 43 px 筛选标签与营销徽章。任何超过高度一半的圆角都得到同样的形状,手写 CSS 里常见的 999px 正是此意。
纯图标 16px 12px 12px 8px 43 px 纯图标控件:把宽度设为与高度相等以保持正方形,并加上 aria-label

这些高度成立,是因为规则固定了 line-height: 1.2;如果按钮从周围页面继承了更大的行高,实际渲染会比配方更高。WCAG 2.2 成功准则 2.5.8「目标尺寸(最小)」要求 24 x 24 CSS 像素,但它列出了五项例外——目标周围有足够间距、页面其他位置存在至少 24 px 的等效控件、目标位于一行文字之中、尺寸由浏览器决定,以及尺寸对于信息表达而言是必需的——而准则 2.5.5 把增强目标提高到 44 x 44。因此 29 px 的「小」配方是下限,而不是安全的默认值。

按钮在悬停、点击和禁用时如何设置样式?

按钮有五个值得单独描绘的状态,每个状态都是同一个类上的独立选择器。静止、悬停和按下三条规则始终包含在输出里;保持勾选「在代码中包含 focus 和 disabled 状态」,生成器就会在下面补上另外两条。

每个按钮状态的 CSS 选择器,以及本生成器在默认配色下为其写出的声明。静止状态一行只列出两条颜色声明;生成代码中完整的 .btn 规则还会加上字体、行高、内边距、圆角、边框、阴影,以及 display、cursor、transition 和 text-decoration。
状态 选择器 生成的声明 作用
静止 .btn background-color: #4f46e5; color: #ffffff 所有其他状态赖以叠加的底层配色。
悬停 .btn:hover opacity: 0.9; transform: translateY(-1px) 确认指针已落在目标上。生成器把按钮抬高一个像素并略微降低不透明度。触摸设备上不会触发。
按下 .btn:active transform: translateY(0) 在指针按住期间把悬停时的抬升收回原位,让点击读起来像一次真正的按压。
键盘焦点 .btn:focus-visible outline: 3px solid #4f46e5; outline-offset: 2px 让使用键盘的人知道自己在哪里。切勿在没有可见替代的情况下写 outline: none。
禁用 .btn:disabled opacity: 0.5; cursor: not-allowed; transform: none 标示该操作不可用。button 元素上的 disabled 属性同时也会阻止点击。

如何在 HTML 中创建可点击的按钮?

当点击是在当前页面上做事时,用 button 元素:给 JavaScript 用 <button type="button" class="btn">保存</button>,在表单内则用 type="submit"。当点击是要跳转时,用链接:<a href="/pricing" class="btn">查看价格</a>,这样中键点击和「在新标签页中打开」才照常可用。只有链接接受 URL,只有 button 接受 disabled,而纯图标控件需要 aria-label,因为屏幕阅读器没有别的内容可读。两者共用同一个 .btn 类,所以 HTML + CSS 标签页输出的 button 元素,只需改一处就能变成链接。

如何把 CSS 按钮做成圆角或全圆形?

这一切都由 border-radius 决定。四到八像素读起来像被磨圆的矩形,十二到十六显得亲切,而任何大于按钮高度一半的值都会得到胶囊形,因为对这个盒子来说过大的圆角会被按比例缩小,直到同一条边上的两个圆角刚好相接——半径一致时,这个上限就是较短边的一半;999px 是「尽可能圆」的惯用写法。真正的圆形需要等宽等高再加上 border-radius: 50%,所以图标按钮的上下内边距要和左右完全相同。在默认的 16px 字号和 12px 上下内边距下,按钮约 43px 高,因此圆角半径滑块从 22 起就已经在画胶囊了。

如何把 CSS 按钮在页面上居中?

按钮是 inline-block,所以在父元素上写 text-align: center 就能让它居中,而按钮本身不必改动。要直接让按钮居中,可以设置 display: block 加 margin-inline: auto 和一个宽度,或者把它放进 display: flex; justify-content: center 的容器里。在已有的弹性行中,margin-inline-start: auto 会把单个按钮推到右边缘。只要你用内边距而不是固定高度来确定按钮尺寸,文字就会自动居中——生成器输出的正是这种写法。

哪个 CSS 按钮生成器最好用?

看它交给你什么,而不是看它内置了多少套主题。好用的生成器会按真实尺寸预览按钮,把内边距、圆角、边框和阴影拆成各自独立的控件而不是锁死的主题,输出不需要安装框架类名的纯 CSS,并且告诉你这组配色是否真的可读。本页按 WCAG 2.2 计算对比度,并在你拖动滑块时同步给出渲染高度,因此问题会当场暴露,而不是留到日后的无障碍审核。

这个 CSS 按钮生成器会产出什么?

两样东西:一个可复用的 .btn 类,附带悬停、按下、焦点和禁用规则,供你放进样式表;以及把同样的声明内联写在 button 元素上的版本,供会剥离外部 CSS 的页面构建器、CMS 区块和邮件模板使用。两者都是不含框架类名的纯 CSS,而上方的对比度面板会在你粘贴之前就告诉你这组配色是否符合 WCAG。

关于CSS按钮生成器

CSS 按钮生成器把若干滑块和取色器,变成一个按钮真正需要的那一条 CSS 规则。你可以设置文案、背景色与文字颜色、字号与字重、水平和垂直内边距、圆角半径、边框宽度与颜色,以及四档阴影深度之一;再选一个可选的第二种颜色,纯色填充就会变成 135 度的线性渐变。预览位于控件上方,是一个套用你的取值的真实 HTML 按钮,尺寸与它将来在你页面上的渲染尺寸一致——你在这里确认的,就是你最终发布的。

有两点让输出真正可用,而不只是好看。第一,代码面板有两个标签页:一个可复用的 .btn 类,附带 :hover、:active、:focus-visible 和 :disabled 规则,可直接放进样式表;以及同一个 button 元素,把全部声明内联写在 style 属性里,供会剥离外部 CSS 的页面构建器、CMS 区块和邮件模板使用。第二,无障碍面板按 WCAG 2.2 计算这组配色,给出对比度和 AAA、AA 或未通过的结论,并在字号与字重达到大字号条件时自动切换到大字号阈值。它还会给出渲染高度——垂直内边距的两倍,加边框的两倍,再加字号的 1.2 倍,也就是规则里写死的行高,好让屏幕上的按钮恰好等于面板所报的高度——并与成功准则 2.5.8、2.5.5 中 24 x 24 和 44 x 44 CSS 像素的目标尺寸对照。

渐变会对两个色标分别检测,显示其中较差的那个比值。八套预设——主要、危险、成功、描边、胶囊形、渐变、淡色和霓虹——是起点而不是终点:点一下,然后接着调。任何颜色、文案和滑块位置都不会被发送到别处;对比度计算、预览和代码都在页面内完成,所以比值会与重绘按钮的那一次按键同步更新。你复制走的是一个类,不需要安装框架,没有构建步骤,也没有运行时脚本。

使用场景

需要为没有设计系统的项目写一条纯 CSS 按钮规则的前端开发者:不用 Tailwind、不用 Bootstrap,只有 .btn 和它的状态。
把规格交付给开发的设计师:拖动滑块直到预览与设计稿一致,然后交出准确的像素值,而不是用文字描述。
会剥离外部样式表、要求每条声明都内联在 style 属性里的邮件与落地页——HTML + CSS 标签页输出的正是这种代码。
复核品牌配色的无障碍评审人员:在你输入十六进制色值的同时,对比度和 WCAG 结论就会更新。
正在学习 padding、border-radius、box-shadow 与 font-weight 如何相互作用的学生和教师,预览会对每一个滑块单独作出反应。

如何使用

1

在“按钮文本”中输入按钮上要显示的文案,然后用色板或旁边的十六进制输入框设置背景色和文字颜色。

2

拖动字号、水平内边距、垂直内边距和圆角滑块来调整按钮外形;调大边框宽度并搭配边框颜色,即可做出描边效果。

3

把字体粗细设为常规、中等、半粗体或粗体,把阴影设为无、小、中或大。

4

勾选“渐变”并选择第二种颜色,即可让背景变成对角双色渐变。

5

点击主要、描边、胶囊形、渐变、淡色或霓虹等快速模板卡片,载入一套现成样式后继续微调。

6

在“预览”面板确认按钮的实时效果,把输出选项卡切换到 CSS 或 HTML + CSS,然后点击代码框上的复制图标。

专业提示

  • 先定字号,再动其他。文字定型之后,内边距和圆角才好判断,而高度读数(2 x 垂直内边距 + 2 x 边框宽度 + 1.2 x 字号)也会随之变化。
  • 先套一个预设再微调。「描边」和「淡色」预设本身就带有大于零的边框宽度,是做次级按钮最快的起点。
  • 直接在色块旁的输入框里键入十六进制色值,不必在取色器里翻找;预览和对比度会随每次按键更新。
  • AA 级对比度在任何字号下都要满足,变的只是门槛:普通文字 4.5:1,字号达到 24px 或加粗 18.66px 后为 3:1。3:1 的配色在明亮显示器上也许还行,在户外就会看不清,所以请把这个较低的门槛当成上限,而不是目标。
  • 渐变会对两个色标分别检测并显示较差的那个比值,所以若只有一端不达标,移动那个色标即可,不必把整个按钮重新配色。

故障排除

问题:

复制的 CSS 在我的页面上没有任何可见效果。

解决方案:

要么这个类被覆盖了,要么根本没有生效。确认元素上确实写着 class="btn",把你的样式表放在框架 CSS 之后加载,并打开开发者工具的 Styles 面板:被划掉的声明说明另一个选择器凭优先级或顺序胜出。

问题:

渐变看起来是平的,或者根本不出现。

解决方案:

渐变是背景图像,不是背景颜色。勾选「渐变」,工具就会输出 background: linear-gradient(...) 而不是 background-color。若仍然看不到,请在同一元素上查找后面出现的 background 简写属性或 background-image:简写会把 background-image 重置为 none,从而抹掉渐变。后写的 background-color 无法遮住它,因为按照 CSS Backgrounds 3,背景颜色绘制在背景图像的下方。

问题:

对比度徽章说配色不达标,但按钮在我看来挺清楚的。

解决方案:

对比度按相对亮度计算,而不是按一种颜色看上去有多鲜艳。像 #f59e0b 配白字这样的中间调组合,看着明亮,实际只有 2:1 左右。请把背景调暗,或把文字改成接近黑色;比值会在你输入时同步更新。

常见问题解答

为这个类写一条规则,设置六个声明:background-color、color、font-size、font-weight、padding 和 border-radius。只有设计确实需要时才加 box-shadow 和边框。生成器替你写的正是这条规则:拖动滑块,看实时预览,然后把 CSS 标签页里的 .btn 代码块复制进你的样式表。

CSS 标签页给出一个可复用的 .btn 类及其状态规则,粘进样式表后,改动这一段就能让全站按钮同时改变。HTML + CSS 标签页给出单个 button 元素,把同样的声明内联写在 style 属性里——页面构建器、CMS 区块和邮件模板需要的正是这种形式,因为它们会剥离外部样式表。若点击是要跳转,把它改成带 href 的链接。

把「边框圆角」滑块往上拉。8px 左右就是大多数界面使用的柔化矩形,超过按钮高度的一半后,四角会连成胶囊形。在默认的 16px 字号和 12px 垂直内边距下按钮高 43px,所以圆角超过大约 22 就已经完全圆了,手写 CSS 里的 999px 也是同一个意思。

会。每次改动文字或背景颜色,它都会重新计算 WCAG 对比度并显示 AAA、AA 或未通过。普通文字 AA 需要 4.5:1,AAA 需要 7:1;24px 的文字,或 18.66px 的粗体文字算作大字号,只需 3:1 和 4.5:1。渐变填充会分别对两个色标计算。

尺寸面板给出的渲染高度等于垂直内边距的两倍,加上边框宽度的两倍,再加上字号的 1.2 倍——1.2 是生成器写死在规则里的行高,所以这个数字与上方绘制的按钮完全一致。WCAG 2.2 成功准则 2.5.8 要求 24 x 24 CSS 像素的目标,2.5.5 则提高到 44 x 44。默认的 16px 字号配 12px 垂直内边距得到 43px,明显高于最低要求。

当点击作用于当前页面时用 button:提交表单、打开对话框、执行 JavaScript。它默认可获得焦点,按 Enter 和空格都会触发,并支持 disabled 属性。当点击要跳转到另一个网址时用带 href 的链接,这样中键点击和「在新标签页中打开」才照常可用。两者可以使用同一个 .btn 类。

生成的 CSS 已经带有 .btn:hover 和 .btn:active。保持勾选「在代码中包含 focus 和 disabled 状态」,还会得到 .btn:focus-visible,其轮廓为 3px、偏移 2px,以及半透明并带 cursor: not-allowed 的 .btn:disabled。切勿在没有可见替代的情况下删掉焦点轮廓,否则使用键盘的人将完全失去位置线索。

可以。输出是纯 CSS,没有许可证、没有署名要求、没有运行时依赖,首行的署名注释也可以删除。你输入的内容同样不会上传:预览、生成的代码和对比度计算都由本页内的 JavaScript 完成,因此你的配色和文案永远不会到达服务器。

几乎总是继承样式在作怪。框架的重置样式、父元素的 font-family、全局的 button 规则或更高优先级的选择器,都可能覆盖你粘贴的类。请把自己的样式表放在框架 CSS 之后加载,让 .btn 只出现在一个元素上,并查看开发者工具的 Styles 面板:被划掉的声明会清楚告诉你是哪个选择器胜出。

标准与参考

FreeWebTools AI
Powered by free AI models · Full chat →