Command Palette

Search for a command to run...

CSS 边框半径如何工作:速记、百分比、圆圈和药丸形状

CSS 边框半径如何工作:速记、百分比、圆圈和药丸形状

T
Toolz Team
|Sep 19, 2026|12 最小读数
Google 上的首选 Toolz.dev

CSS与设计集合的一部分

CSS边界半径生成器

用实时预览和每个角滑块在任何角落切换,在 PX、%、EM 和 REM 之间切换,并复制最短的有效 CSS 边框半径。

用CSS边界半径生成器

border-radius 是大多数人学习的CSS属性中的第一个,也是他们最后完全理解的属性之一,将卡片的四个角全部四舍五入12像素很容易,那么一个按钮需要是任意宽度的药丸,一个头像需要是一个圆圈,一个聊天泡泡需要一个尖角,突然之间简写顺序,之间的区别 50% 並 999px,以及"停止生长"的半径。一切都很重要。

本指南解释了属性从规范到上的工作原理:每个值计数的含义、百分比与像素的差异、浏览器如何缩放太大的半径、如何构建公共形状以及为什么有时无法出现圆角。这些示例与 CSS边界半径生成器(其),它实时预览每个角落并输出最短的有效速记,它是其中之一 CSS 工具 在工具上。

TL;博士: border-radius round a element's 角,一个值设置所有四个角,两个值设置左上/右下和右上/左下对,三个值设置左上,然后右上和左下一起,然后右下,四个值从左上顺时针运行,像素半径是固定曲线;百分比分别根据宽度和高度测量,所以 50% 仅在正方形上做一个圆,当沿边半径加起来大于边时,浏览器按比例缩放每个半径。 边框半径生成器 为您处理简写,客户端,免费,无需注册。

CSS边框半径属性是做什么的?

的 border-radius property 圆一个元素的外角's 边框框,每个角变成一个椭圆的四分之一,半径水平,半径垂直,当两个半径相等时,角是四分之一圆。

W3C中定义的 CSS背景和边界模块第3级10多年来,每个主要浏览器都支持不加前缀,因此不需要供应商前缀。

圆润影响大于边框线元素's背景剪裁成圆润形状, box-shadow 遵循曲线,在现代浏览器中也是如此 outline。元素内部的内容不会被剪切,除非你添加 overflow: hidden的,这是圆角出现失效的最常见原因。

边框半径速记如何工作?

border-radius 是四种手持属性的简写: border-top-left-radius、 border-top-right-radius、 border-bottom-right-radius 並 border-bottom-left-radius。您给出的值数量决定每个值适用于哪些角。

价值观 例子 左上 右上 右下 左下
1 border-radius: 16px; 16便士 16便士 16便士 16便士
2 border-radius: 24px 8px; 24便士 8便士 24便士 8便士
3 border-radius: 24px 8px 0px; 24便士 8便士 0px 8便士
4锛屽湪娴欐睙鏉 border-radius: 20px 10px 5px 0px; 20便士 10便士 5便士 0px

该图案与所使用的顺时针顺序相同 margin 並 padding、从左上角开始而不是从上侧开始,缺失值从他们的对角线伙伴填满:有两个值,右下副本左上和左下副本右上。三个,左下副本右上。

Generator反转这个过程, 你用自己的滑块设置每个角, 它写出最少的值, 产生相同的形状:

  • 所有四个角都相等,给出一个值。
  • 左上等于右下,右上等于左下,给出两个值。
  • 右上等于左下(但另一条对角线不同)给出三个值。
  • 其他任何东西都给出四个。

1个后果让人吃惊,仅圆左上角20px,输出为 border-radius: 20px 0px 0px;的,而不是四值 20px 0px 0px 0px.二者正确;三值形式较短,因为右上和左下都是零,每个值都保持其单位,所以一个零角打印为 0px。

边框半径的px和%有什么区别?

A像素半径为绝对尺寸,百分半径相对于元素's尺寸,水平和垂直部分分别测量:水平半径对宽度,垂直半径对高度。

Zai一个正方形上,那些是同一个数,在长方形上,Ta们不是,这就是为什么 50% 将正方形变成圆形,将矩形变成椭圆形。

224px宽160px高的生成器's预览箱取:

价值 水平半径 垂直半径 形状
16px 16便士 16便士 圆形矩形、圆形角
50% 112px(224 的 50%) 80px(160的50%) 椭圆
25% 56便士 40便士 圆形矩形、椭圆形角
999px 999px,缩放到80px 999px,缩放到80px 圆端药丸

另外两个单元的行为就像解析后的像素一样。 em 是相对于元素's自己的字体大小和 rem 到根字体大小,所以 1rem 是16px默认浏览器设置。使用 em 或 rem 让角落随着文本大小而缩放,这适合随标签一起生长的按钮和标签。

在生成器中,滑块以全数步长从 0 到 200(px)、0 到 50(%)、0 到 10(em 和 rem)运行。切换单元会保留数字并交换单元,因此 16px 变为 16%,而不是转换值。

为什么大的边框半径不再变圆?

为规范不允许角曲线重叠,当一侧半径加起来超过那一侧's长度时,浏览器会将元素上的每个半径缩小相同的因子,直到它们适合。

的 角重叠规则 zhe样工作,四条边中每一条边's长度除以触摸它的两个半径之和,取那些比中最小de一个,称之为f,如果f小于1,则每yi个半径乘以f。

这是计算 border-radius: 999px 224乘160的预览框上:

top and bottom sides:  224 / (999 + 999) = 0.1121
left and right sides:  160 / (999 + 999) = 0.0801
f = min(0.1121, 0.0801)                  = 0.0801
every radius: 999 × 0.0801               ≈ 80px

80px半径每个角落结束,恰好是160px高度的一半,所以短端变成完美的半圆,同样的事情发生在200px,像素滑块的顶部:f是160/400 = 0.4,200×0.4又是80px,超过了短边的一半,像素半径停止改变任何东西。

2个实际结果接下来,一个药丸按钮可以使用任何非常大的像素值,并且它在任何宽度下都保持药丸,并且由于在所有四个角上缩放是成比例的,单个超大角也缩小了其他的左上设置为999px,其余的留在20px,20px的角随之缩小。

如何用边框半径制作常见的形状?

界面中的大多数圆形形状来自少数配方。生成器对常见的有预设。

形状 CSS 注释
锋利 border-radius: 0px; 大多数元素的默认值
微妙 border-radius: 6px; 输入、小按钮
卡 border-radius: 12px; 面板和卡片
圆润 border-radius: 16px; 生成器's起始值
丸 border-radius: 999px; 通过重叠缩放以任何宽度工作
圈 border-radius: 50%; 需要相同的宽度和高度
叶 border-radius: 0px 24px; 两个相对的角呈圆形
斑点 border-radius: 60% 40%; 有机形状的百分比不等
言语泡沫 border-radius: 16px 16px 16px 0px; 扬声器附近的一个尖角
选项卡 border-radius: 8px 8px 0px 0px; 顶部圆形,底部平坦

圈。 套 50% 1个宽度、高度相等的元素上,头像加 aspect-ratio: 1 並 object-fit: cover 在图像上,非正方形照片不会延伸成椭圆。

丸。 使用大像素值而不是 50%。在一个宽大的按钮上, 50% 产生一个末端尖的椭圆,因为水平半径是宽度的一半。 999px 相反,被缩放到一半的高度,给出圆形末端。

斑点。 的预设 60% 40% 60% 设置左上和右下,另外两个设置为 40% 在预览框上,沿顶部边缘的水平半径为 134.4px 和 89.6px,加起来恰好为 224px,因此不会发生缩放,两条曲线在它们之间没有留下直边的情况下会经过预设,可以超过滑块范围:Blob 使用 60%,Pill 使用 999px,输出会保留这些值,直到您移动滑块。

语音泡沫和选项卡。 Shape 都沒有匹配的對角線對,所以都需要所有的四個值。在生成器中單獨設定角,它確認不存在更短的形式。

边框半径中的斜杠语法是什么?

斜线将水平半径与垂直半径分开,因此每个角都可以是非圆形椭圆,其尺寸可直接选择。

/* horizontal radii / vertical radii */
.lens {
  border-radius: 50% / 20%;
}

/* four horizontal, then four vertical */
.egg {
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}

Slash每边值都遵循与普通速记相同的一到四规则,Toolz生成器不写slash语法:每角设置一个半径,涵盖圆、丸、卡和斑蛋形状和自定义镜头形式,从生成器's输出开始,手工添加slash部分。

为什么我的圆角没有露出来?

X = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 border-radius 似乎什么也没做,原因几乎总是其中之一。

症状 原因 修复
图像或孩子从角落里戳出来 默认情况下不会剪辑儿童 添加 overflow: hidden 交给四舍五入的父母,或者也交给孩子
根本没有明显的变化 元素没有背景、边框或阴影 赋予它背景颜色或边框,以便形状可见
桌角保持方形 border-collapse: collapse 桌子上 用 border-collapse: separate 与 border-spacing: 0或者将包装纸绕一圈
圆圈看起来像一个椭圆形 宽度和高度不同 设置等尺寸或 aspect-ratio: 1
药丸有尖端 使用 50% 在宽元素上 使用像这样的大 px 值 999px
半径停止增加 重叠缩放 预期;半径上限为较短边的一半
内元素角看起来更厚 内半径等于衬垫内的外半径 将内半径设置为外半径减去衬垫

最后一张是微妙的。一张卡片 border-radius: 16px 並 padding: 8px 16px半径相同的图像,看起来不均匀,因为内曲线应该更紧,跟着外曲线走的内半径是16减8,所以8px。

边框半径如何与阴影和梯度结合?

圆角很少单独发货,一张卡片通常有阴影,并且经常有渐变背景,并且两者都自动遵循圆形。

box-shadow traces圆边框,所以12px卡片下面的软影子有12px圆角,没有任何额外的工作。的 盒子阴影生成器 预览圆形元素上的阴影,以及 盒子阴影指南 解释其背后的偏移值、模糊值和价差值。

背景(包括梯度)也被剪裁到圆形。要设计填充物,请使用 CSS梯度生成器;的 CSS 梯度指南 穿过语法。如果角大小应该与视口缩放而不是保持固定,则 CSS 钳形生成器 构建a clamp() value 可以用作半径,例如手机上的 8px 和宽屏幕上的 20px 卡。

使用生成器,一步一步

  1. 选择一个预设 如卡片、药丸、圆圈或 Blob,或者从默认的 16px 角开始。
  2. 调整角落。 角切换默认为独立,其中每个滑块仅移动自己的角。将其切换到 Linked 以将所有四个一起移动。
  3. 选择一个单位: px、%、em 或 rem。
  4. 检查预览。 渐变框在拖动时更新,包括大值上的重叠缩放。
  5. 复制 CSS。 "复制 CSS"按钮复制完整内容 border-radius: 声明的最短形式。

Everything都运行客户端:预览和代码是JavaScript在你的浏览器中生成的,没有任何上传,页面一旦加载就一直离线工作,当你准备好了, 打开边框半径生成器、设置您的角落,并将声明直接粘贴到您的样式表中。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!