首先,您不必声明position: static;
,因为默认情况下它已经是静态的(除非您使用responsive design
需要在某个分辨率点重置属性值的位置),其次,分配position: relative;
给您#bookmark
并制作第二个三角形position: absolute;
演示
#bookmark{
width: 200px;
position: relative;
}
#rectangle {
width: 200px;
height: 300px;
background: black;
}
#triangle-topleft {
width: 0;
height: 0;
border-top: 100px solid black;
border-right: 100px solid transparent;
}
#triangle-topright {
position: absolute;
right: 0;
width: 0;
height: 0;
border-top: 100px solid black;
border-left: 100px solid transparent;
bottom: 0;
}
注意:确保不要制作第一个三角形position: absolute;
,否则需要重新定位三角形。但这是您可以获得的最佳方法,因为您已经包裹absolute
在relative
容器中。
您还可以看看这个很棒的东西 - Font Awesome - Bookmark,您可以将其调整为您想要的任何大小。
您正在尝试的事情也可以通过使用:before
和:after
伪以及content
属性来实现。所以你可以摆脱多余的三角形元素。
正如我所说,你可以用一个元素来创建这个东西。
#bookmark{
width: 200px;
position: relative;
height: 300px;
background: black;
}
#bookmark:before {
width: 0;
height: 0;
border-top: 100px solid black;
border-right: 100px solid transparent;
display: block;
content: "";
position: absolute;
bottom: -100px;
}
#bookmark:after {
position: absolute;
right: 0;
width: 0;
height: 0;
border-top: 100px solid black;
border-left: 100px solid transparent;
bottom: -100px;
display: block;
content: "";
}
在这里,我正在使用:before
和:after
伪,其中display: block;
和content: "";
是让这个东西工作所必需的,也正在使用absolute
设置为的值来定位这两个元素-100
演示(使用单个元素)
注意::before
和:after
pseudo 在旧版本的 IE 中可能会失败,但您始终可以使用 polyfills 来使用CSS 3
属性,此外,有关浏览器支持的更多信息,您可以查看此内容。