我知道可以使用以下代码创建六边形:
.hex:before {
content: " ";
width: 0; height: 0;
border-bottom: 30px solid #6C6;
border-left: 52px solid transparent;
border-right: 52px solid transparent;
position: absolute;
top: -30px;
}
.hex {
margin-top: 30px;
width: 104px;
height: 60px;
background-color: #6C6;
position: relative;
}
.hex:after {
content: "";
width: 0;
position: absolute;
bottom: -30px;
border-top: 30px solid #6C6;
border-left: 52px solid transparent;
border-right: 52px solid transparent;
}
如何创建一个用一种颜色填充并用另一种颜色勾勒出轮廓的六边形?我正在尝试摆弄它,但这似乎是不可能的。
欢迎任何其他替代方案,我想 避免 使用图像。
原文由 Arkuen 发布,翻译遵循 CC BY-SA 4.0 许可协议
这不可能 直接 实现,因为六边形是通过伪元素由边界创建的。另一种方法是在六边形内叠加六边形,从而达到相同的预期效果。
这是可以实现的 示例:
现场示例在这里
HTML - 非常基本,继续相同的模式以获得更多边框。
CSS (三层 - 两个内部元素)
从六边形类开始,定义形状/大小/颜色:
设置内部类的样式并使用
transform: scale()
按比例减小内部元素的尺寸。在此示例中,使用了比例scale(.8, .8)
。如果您想要更粗的边框,请减少数字;相反,如果您想要更细的边框,请增加数字。指定并覆盖颜色,同时增加
z-index
值以使元素向前移动。设置第二个嵌套元素的样式,基本上遵循与上次相同的步骤。使用相同的
scale
值毫无价值,因为它在已经缩放的元素中。当然,你想用什么就用什么;这只是一个基本的例子。再次, 这里是活生生的例子