【发布时间】:2018-04-03 18:55:55
【问题描述】:
我已经废弃了一些六边形div 的代码,它工作得很好。现在的问题是我需要一个半透明背景,但是:after 和:before 标签重叠,导致透明度不一致。
.hexagon {
position: relative;
width: 290px;
height: 173.21px;
margin: 86.60px 0;
border-left: solid 5px #333333;
border-right: solid 5px #333333;
background-color: rgb(102, 204, 34, 0.7);
}
.hexagon:before,
.hexagon:after {
box-sizing: border-box;
content: "";
position: absolute;
z-index: 1;
width: 212.13px;
height: 212.13px;
-webkit-transform: scaleY(0.5774) rotate(-45deg);
-ms-transform: scaleY(0.5774) rotate(-45deg);
transform: scaleY(0.5774) rotate(-45deg);
background-color: rgb(102, 204, 34, 0.7);
left: 38.9340px;
}
.hexagon:before {
top: -106.0660px;
border-top: solid 7.0711px #333333;
border-right: solid 7.0711px #333333;
}
.hexagon:after {
bottom: -106.0660px;
border-bottom: solid 7.0711px #333333;
border-left: solid 7.0711px #333333;
}
<div class="hexagon">
<span style="font-size: 11px">1</span>
<span>2 </span>
</div>
让它发挥作用的最佳方法是什么?
【问题讨论】:
-
再涉及两个容器元素并将伪元素放入其中,这样您就可以使用overflow:hidden 来切断原本会重叠的部分......?
-
等等什么十六进制问题和 web-tiki 不在这里?
-
在 HTML 中制作类似形状的最佳方法是使用 SVG。我知道它不适用于 HTML 和 CSS,但它在新浏览器中运行良好。
标签: css svg css-shapes