当前位置:首页 > CSS

css制作六边形

2026-01-15 11:44:58CSS

使用 CSS 制作六边形

方法一:使用 clip-path 属性

通过 clip-path 直接定义六边形的路径,简单高效且支持动画效果。

.hexagon {
  width: 100px;
  height: 110px;
  background-color: #3498db;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

参数说明

  • polygon 中的百分比值为六边形六个顶点的坐标,依次为:顶部中点、右上角、右下角、底部中点、左下角、左上角。

方法二:利用伪元素旋转

通过旋转伪元素叠加实现六边形效果,兼容性较好。

.hexagon {
  width: 100px;
  height: 57.74px; /* 高度 = 宽度 × (√3 / 2) */
  background-color: #3498db;
  position: relative;
  margin: 28.87px 0; /* 边距 = 高度 / 2 */
}

.hexagon:before,
.hexagon:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: inherit;
}

.hexagon:before {
  transform: rotate(60deg);
}

.hexagon:after {
  transform: rotate(-60deg);
}

关键点

  • 六边形高度与宽度的比例为 √3/2(约 0.866)。
  • 伪元素通过旋转 60° 和 -60° 补全六边形的另外两部分。

方法三:SVG 内联

直接使用 SVG 绘制六边形,嵌入到 HTML 中。

<svg width="100" height="115" viewBox="0 0 100 115">
  <polygon points="50 0, 100 25, 100 75, 50 100, 0 75, 0 25" fill="#3498db" />
</svg>

优势

  • SVG 为矢量图形,缩放无损清晰度。
  • 可通过 CSS 控制填充色和动画。

六边形布局技巧

若需将多个六边形拼接为蜂窝网格,需注意以下 CSS:

.hex-grid {
  display: flex;
  flex-wrap: wrap;
  margin-left: 50px; /* 偏移半个六边形宽度 */
}

.hexagon {
  margin-right: -25px; /* 重叠部分 */
  margin-bottom: -14px; /* 垂直重叠 */
}

原理

  • 通过负边距和偏移实现六边形的紧密排列。

css制作六边形

标签: css六边形
分享给朋友:

相关文章

css网页制作

css网页制作

CSS网页制作基础 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。以下是核心知识点: 选择器与样式规则 /* 标签选择器 */ p { color: #333;…

css网页制作教程

css网页制作教程

CSS网页制作教程 CSS(层叠样式表)是用于控制网页外观和布局的核心技术。以下是CSS网页制作的关键步骤和技巧: 基础语法与引入方式 CSS规则由选择器和声明块组成: 选择器 { 属性:…

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成: 选择器 { 属性: 值; } 例如设置段落文字颜色为红色: p { color: red…

css制作菜单

css制作菜单

水平菜单制作 使用display: inline-block或flexbox布局创建水平菜单。设置list-style: none移除默认列表样式,添加padding和margin调整间距。 &l…

css表格制作表格

css表格制作表格

CSS 表格制作方法 使用 CSS 创建表格可以通过多种方式实现,包括原生 HTML 表格元素结合 CSS 样式,或者使用纯 CSS 布局技术(如 Flexbox 或 Grid)模拟表格效果。以下是常…

css导航条制作

css导航条制作

基础导航条制作 使用HTML的无序列表<ul>和CSS的display: flex属性可以快速创建横向导航条。HTML结构通常包含导航链接列表,CSS负责样式和布局。 <nav&g…