CSS三角形生成器

下一个

经典的 CSS 三角形其实根本不是真正的三角形,它是一个零宽度、零高度的元素,拥有三条透明边框和一条彩色边框,这些边框恰好在一点交汇。该生成器会按你选择的像素值和填充颜色,为你生成四个方向(上、下、左、右)的样式声明。非常适合用于工具提示箭头、气泡对话框以及面包屑分隔符等场景。

如何构建边框三角形

  1. 1

    选择方向

    向上、向下、向左或向右。方向决定了哪条边框会显示颜色,哪三条边框保持透明。

  2. 2

    设置大小

    该尺寸值应用于所有边框宽度。60px 的三角形宽度为 120px(或高度为 120px,取决于方向)。

  3. 3

    选择填充颜色

    颜色输入仅支持 hex 值(例如 `#10b981`),不支持 rgb、rgba 或具名颜色。该颜色仅应用于对侧的那条边框。

  4. 4

    复制 CSS 规则

    输出的是完整的 `.triangle { ... }` 规则集,将它放入你的样式表,并在需要的位置添加 `<div class="triangle"></div>`。

为什么这种边框技巧能够奏效

当一个盒子的 width: 0height: 0 时,它的四条边框会汇聚于同一个中心点。由于边框以 45 度角斜接,每条边框本身就是一个三角形,只是其中三个恰好不可见。给某一条边框着色,你就能看到那个三角形。

方向对照表

方向 可见边框 透明边框
border-bottom border-leftborder-rightborder-top
border-top border-leftborder-rightborder-bottom
border-right border-topborder-bottomborder-left
border-left border-topborder-bottomborder-right

尺寸计算

三条透明边框共用同一个尺寸值,可见边框也采用相同的尺寸。因此,size: 60 的三角形为:

  • 宽度 = 2 × 60 = 120px(适用于向上/向下的三角形)
  • 高度 = 2 × 60 = 120px(适用于向左/向右的三角形)

如需制作不对称三角形(底边较窄、顶点较高),请为透明边框设置一种尺寸,为可见边框设置另一种尺寸,例如 border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 40px solid red; 就能生成一个又高又窄、朝上的三角形。

何时改用 SVG

  • 你需要多个顶点,而不是三个,请使用 <polygon>
  • 三角形需要随父元素平滑缩放,请使用 viewBoxpreserveAspectRatio
  • 你想要渐变填充、描边或圆角尖端,CSS 边框都无法实现。

常见问题

仅靠边框是做不到的,边框宽度无法以任何被良好支持的方式接受 %vw。若需要平滑缩放,请改用 SVG 的 <polygon>,或在普通元素上使用 clip-path: polygon(...)

无法对边框交汇的那个角进行圆角处理。请使用带描边路径的 SVG 并配合 stroke-linejoin: round,或用 clip-path: polygon(...) 结合轻微的 filter: drop-shadow 来遮盖边缘。

可以,这正是最常见的用法。将三角形以绝对定位贴在工具提示的边缘,并让填充颜色与工具提示的背景色一致,使其看起来像一个完整的气泡。

是的。您选择的方向、大小和颜色会随页面请求发送到我们的服务器,以便生成 CSS。在分步流程中,这些值也会携带在页面链接中。它们不会被存储。

相关工具

此工具还提供其他语言版本