如何在CSS中创建多边形div

mri*_*rid 4 html css css3

我能够在CSS中创建一个普通的方形div和一个三角形div.但我不知道如何用一个div制作这样的形状.谁能帮我吗 ?

此外,我希望它扩展到它的父级的整个宽度,但 border属性不支持百分比.(例如border-left: 160px solid transparent;)

.container{
  width: 100%;
  position: relative;
}

.v-div {
  width: 0; 
  height: 0; 
  border-left: 160px solid transparent;
  border-right: 160px solid transparent;
  border-top: 100px solid #f00;
}

.box{
   height: 80px;
   width: 320px;
   background: red;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
    <div class="box">
    </div>
    <div class="v-div">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

ab2*_*007 6

你可以用:after伪类来做.如果您:before在此示例中取消注释,则会得到六边形

#hexagon{
  position: relative;
  height:100px;
  width:50%;
  color: white;
  background: green;
  padding-bottom: 15%;
  overflow:hidden;
  background-clip: content-box;
}
#hexagon:after {
  content: "";
  position: absolute;
  top:100px;
  left: 0;
  background-color:green;
  padding-bottom: 50%;
  width: 57.7%;
  transform-origin: 0 0;
  transform: rotate(-30deg) skewX(30deg);
}
Run Code Online (Sandbox Code Playgroud)
<div id="hexagon"></div>
Run Code Online (Sandbox Code Playgroud)


Pri*_*aju 5

您可以使用剪辑路径 css 属性

#clippedDiv{
    width:200px;
    height:200px;
    background-color:red;
    -webkit-clip-path: polygon(50% 0%, 100% 0, 100% 35%, 50% 70%, 0 35%, 0 0);
    clip-path: polygon(50% 0%, 100% 0, 100% 35%, 50% 70%, 0 35%, 0 
}
Run Code Online (Sandbox Code Playgroud)
<div id="clippedDiv"></div>
Run Code Online (Sandbox Code Playgroud)

有关更多形状,您可以访问http://bennettfeely.com/clippy/