1
我有以下的HTML和CSS代码:CSS:六边形与背景图像的DIV文本
.hex {
width: 150px;
height: 86px;
background-color: #ccc;
background-repeat: no-repeat;
background-position: 50% 50%;
background-size: auto 173px;
position: relative;
float: left;
margin: 25px 5px;
text-align: center;
zoom: 1;
}
.hex a {
display: block;
width: 100%;
height: 100%;
text-indent: -9999em;
position: absolute;
top: 0;
left: 0;
}
.hex .corner-1,
.hex .corner-2 {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: inherit;
z-index: -2;
overflow: hidden;
backface-visibility: hidden;
}
.hex .corner-1 {
z-index: -1;
transform: rotate(60deg);
}
.hex .corner-2 {
transform: rotate(-60deg);
}
.hex .corner-1:before,
.hex .corner-2:before {
width: 173px;
height: 173px;
content: '';
position: absolute;
background: inherit;
top: 0;
left: 0;
z-index: 1;
background: inherit;
background-repeat: no-repeat;
backface-visibility: hidden;
}
.hex .corner-1:before {
transform: rotate(-60deg) translate(-87px, 0px);
transform-origin: 0 0;
}
.hex .corner-2:before {
transform: rotate(60deg) translate(-48px, -11px);
bottom: 0;
}
/* Custom styles*/
.hex .inner {
color: #eee;
}
.hex h4 {
font-family: 'Josefin Sans', sans-serif;
margin: 0;
}
.hex hr {
border: 0;
border-top: 1px solid #eee;
width: 60%;
margin: 15px auto;
}
.hex p {
font-size: 16px;
font-family: 'Kotta One', serif;
width: 80%;
margin: 0 auto;
}
.hex.hex-3 {
background: #80b971;
}
<div class="divWithBackgrounImage">
<div class="hex hex-3">
<div class="inner">
<h4>CONTACT US</h4>
<hr />
<p>We Open Everyday</p>
</div>
<a href="#"></a>
<div class="corner-1"></div>
<div class="corner-2"></div>
</div>
</div>
的问题是,z-index的负值背后隐藏的背景图。如果我使用正向z-索引比我的六边形中没有文字。如何解决这个问题呢?
替换为一个单一的SVG图像的复杂六角黑客将让一切更简单和更清洁的IMO –
@Denys塞居勒非常感谢你的好主意!但是,有可能使内部的文本svg六角形? –
当然可以。您还可以使用javascript设置文本(或svg的任何部分)。而且你也可以使用svg作为文本的div的背景。 –