clip-path: polygon()是现代浏览器实现六边形最直接可控的方式,需用百分比坐标如(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%)并配合明确宽高或aspect-ratio确保居中与响应式。

现代浏览器里,clip-path: polygon() 是实现六边形最直接、最可控的方式,不用伪元素、不拼 transform、不依赖 SVG 引用,纯 CSS 一行搞定。
clip-path 实现正六边形要配百分比坐标
抄网上“标准六边形坐标”却直接粘贴进 clip-path,大概率会只显示一角或完全消失——因为 polygon() 默认坐标系原点在元素左上角,而数学公式给的顶点通常以中心为 (0, 0)。必须手动换算成相对宽高的百分比坐标。
-
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%)是经过验证的居中正六边形坐标,所有值都基于元素自身宽高 - 目标元素必须有明确宽高(比如
width: 200px; height: 200px;)或使用aspect-ratio: 1/1,否则百分比坐标无参照 - 响应式场景下,优先用
aspect-ratio+clip-path,避免宽高缩放不一致导致变形
hover 和点击区域必须用 clip-path,别用伪元素方案
用 :before/:after 拼三角形的老方法,视觉上像六边形,但点击区域仍是矩形,:hover 也会在多余区域触发。而 clip-path 真实裁剪了可交互区域。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 鼠标悬停、点击、焦点等事件只作用于裁剪后的六边形轮廓内
- 动画如
transition: clip-path 0.3s可平滑缩放或变形,伪元素方案需同步动三个部分,极易错位 - 若要加边框,不能用
border(会被裁掉),改用outline或套一层带border的父容器
需要 SVG 级精度时,直接上内联 <polygon>
当六边形要和其它 SVG 图形对齐、做复杂动画、或导出为矢量图时,clip-path 坐标系不够稳定,锯齿、缩放失真、事件捕获不准的问题会暴露出来。
立即学习“前端免费学习笔记(深入)”;
- 用
<svg viewBox="0 0 100 100" width="200" height="200"><polygon points="50,0 100,25 100,75 50,100 0,75 0,25"></polygon></svg>,坐标系独立、缩放无损 - hover 样式必须写在
<polygon>上,而不是外层<svg>,否则点击可能无效 - 去掉
width/height属性,只留viewBox,再用 CSS 控制尺寸(如width: 100%; aspect-ratio: 1/1),更灵活
真正容易被忽略的是:六边形不是“画出来就行”,而是“交互区域是否真实匹配视觉形状”。clip-path 和 <polygon> 的区别不在外观,而在坐标系是否隔离、事件是否精确捕获——这点在做蜂巢布局或地图热区时,一碰就露馅。


















