Generated CSS

CSS三角形 — 完整参考

CSS三角形出现在提示框、下拉箭头、对话气泡、分隔线和装饰形状中。它们可以通过三种不同的技术创建,每种技术在浏览器支持、背景图像兼容性、box-shadow行为和动画能力方面各有取舍。

边框技巧——工作原理

边框技巧是最古老且兼容性最好的技术。它利用了CSS边框一个鲜为人知的几何特性:当元素的宽度和高度都为零时,其四条边框仍然占据空间并在元素中心相交。使三条边框透明,只留下一条有色边框,就会显示一个三角形,方向与有色边框相反。

边框技巧有一个重要限制:box-shadow会投影在不可见的矩形边界框上,而不是三角形形状。对于需要阴影的三角形,请使用应用于包装元素的filter: drop-shadow()

clip-path技术

clip-path: polygon()方法将普通矩形元素裁剪成三角形形状。与边框技巧不同,元素保留其正常的矩形结构——仍然有背景,可以接受box-shadow,可以包含内容。关键优势是应用于元素或包装器的filter: drop-shadow()会跟随裁剪后的形状。

使用伪元素的提示框箭头

提示框箭头是CSS三角形最常见的实际应用。标准方法在提示框容器上使用::before::after伪元素,绝对定位使其恰好延伸到提示框边缘之外。

角三角形

角三角形——坐落在角落而不是指向基本方向的三角形——只使用两条边框而不是三条边框来制作。它们通常用于卡片上的"ribbon"装饰和"sale"或"new"徽章指示器。

动画变形三角形

clip-path: polygon()方法支持边框技巧无法实现的形状变形动画。由于当起始和结束值具有相同数量的多边形点时,clip-path值可以过渡,你可以动画化三角形改变方向。

等边和等腰三角形

等边三角形的高度是其宽度乘以√3/2 ≈ 0.866。通过clip-path,你可以在响应式元素上使用aspect-ratio: 1 / 0.866

CSS箭头图标

经典的下拉箭头图标——开放三角形而不是实心三角形——是用旋转45度的带两条边框的正方形元素制作的。这产生了经典的下拉箭头V形图标。

为什么不能给边框技巧三角形添加box-shadow?

边框技巧在视觉上产生三角形,但元素的边界框仍然是零尺寸的矩形。box-shadow投影在边界框上,它是不可见的。在包装元素上使用filter: drop-shadow()——它分析元素实际渲染的像素,只在可见部分投影。

如何制作带渐变填充的三角形?

边框技巧不能容纳渐变填充。对于渐变三角形,使用clip-path: polygon()并以任意渐变作为元素的背景。

可以动画化CSS三角形改变方向吗?

用clip-path可以。将两种方向定义为具有相同点数的polygon()值,并在它们之间过渡。

提示框箭头应该使用哪种技术?

对于提示框箭头使用边框技巧和伪元素(::before::after)。它产生最少的代码,在所有浏览器中都能工作,并给你精确控制箭头大小和位置。

如何制作有轮廓或边框的三角形?

使用伪元素叠加两个边框技巧三角形:基础元素产生较大的外部三角形(边框颜色),其::after伪元素产生略小的三角形(背景颜色),定位使其重叠。

Tool last updated: