使用CSS绘制多边形

335 阅读2分钟

在CSS中,有几种方法可以绘制多边形,以下是主要的几种技术:

1. 使用CSS clip-path属性

clip-path 是最直接创建多边形的方法:

.polygon {
  width: 200px;
  height: 200px;
  background-color: blue;
  
  /* 六边形示例 */
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  
  /* 三角形示例 */
  /* clip-path: polygon(50% 0%, 0% 100%, 100% 100%); */
  
  /* 五边形示例 */
  /* clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%); */
}

2. 使用CSS边框技巧(适用于三角形)

.triangle {
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 100px solid red;
  
  /* 其他方向的三角形 */
  /* border-top: 100px solid green; */
}

3. 使用SVG与CSS结合

<style>
  .svg-polygon {
    width: 200px;
    height: 200px;
  }
</style>
 
<svg class="svg-polygon" viewBox="0 0 100 100">
  <polygon points="50,0 100,50 50,100 0,50" fill="purple" />
</svg>

4. 使用CSS transform属性(更复杂的多边形)

.complex-polygon {
  position: relative;
  width: 100px;
  height: 100px;
  background-color: orange;
  transform: rotate(45deg);
}

5. 使用CSS mask-image(现代浏览器支持)

.masked-polygon {
  width: 200px;
  height: 200px;
  background-color: teal;
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><polygon points="50,0 100,50 50,100 0,50" /></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><polygon points="50,0 100,50 50,100 0,50" /></svg>');
}

多边形生成工具

对于复杂多边形,可以使用在线工具生成clip-path代码:

注意事项

1.clip-path 在现代浏览器中有很好的支持,但在旧版IE中不支持

2.使用边框技巧仅限于三角形

3.SVG方法兼容性最好

4.考虑添加-webkit-前缀以确保最大兼容性

您需要哪种特定类型的多边形?我可以提供更具体的代码示例。

————————————————

原文链接:blog.csdn.net/qq_37884031…