当前位置:首页 > CSS

css制作六边形

2026-02-26 21:52:23CSS

使用 CSS 制作六边形

通过 CSS 的 clip-path 属性或伪元素旋转可以轻松实现六边形效果。以下是两种常见方法:

方法一:使用 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() 定义六边形的六个顶点坐标,按顺时针或逆时针顺序排列。
  • 百分比值基于元素的宽高,50% 表示中点。

方法二:伪元素旋转

通过旋转两个矩形叠加形成六边形,兼容性更好。

.hexagon {
  width: 100px;
  height: 60px;
  background-color: #3498db;
  position: relative;
}

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

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

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

注意事项:

  • 伪元素需设置与父元素相同的背景色。
  • 调整 widthheight 比例可改变六边形形状。

扩展:添加边框

若需六边形边框,可用额外嵌套元素或 outline 配合 clip-path

.hexagon-border {
  width: 102px;
  height: 112px;
  clip-path: polygon(
    50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%
  );
  background: linear-gradient(45deg, #3498db, #2ecc71);
}

.hexagon-inner {
  width: 98px;
  height: 108px;
  clip-path: inherit;
  background: white;
  position: relative;
  top: 2px;
  left: 2px;
}

提示:

css制作六边形

  • 现代项目优先选择 clip-path,代码更简洁。
  • 需兼容旧浏览器时,可采用伪元素方案或 SVG 替代。

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

相关文章

css 导航栏制作

css 导航栏制作

水平导航栏制作 使用无序列表<ul>和<li>标签构建基础结构,通过CSS将列表项横向排列 <nav> <ul class="horizontal-na…

css制作相册

css制作相册

使用CSS Grid布局制作相册 CSS Grid布局非常适合创建响应式相册,能够灵活调整行列和间距。 .photo-gallery { display: grid; grid-templa…

css制作扇形图

css制作扇形图

使用CSS制作扇形图 方法一:使用clip-path和transform 通过CSS的clip-path和transform属性可以快速实现扇形效果。定义一个圆形元素,然后裁剪出扇形部分。 .fan…

css制作滑动页面

css制作滑动页面

使用CSS实现滑动页面 通过CSS可以实现多种滑动页面效果,包括横向滑动、纵向滑动以及视差滚动等。以下是几种常见的实现方法: 横向滑动效果 横向滑动通常用于展示一组卡片或图片,可以通过CSS的ove…

css 制作输入框

css 制作输入框

基础输入框样式 使用 input 或 textarea 元素创建输入框,通过 CSS 设置边框、圆角、内边距和背景色: .input-basic { border: 1px solid #ccc…

css loading制作

css loading制作

CSS Loading动画制作方法 通过CSS可以创建多种加载动画效果,以下是几种常见实现方式: 旋转动画 使用@keyframes创建旋转效果,适合圆形加载指示器: .loader { wi…