我正在做一个创意项目,我想在盒子元素中添加“三角形”以获得语音气泡效果,并且仍然对每个元素应用不透明度,如下所示:
我可以在每个元素的右侧和底部使用 1px 边框正确显示块。但是,这不包括标题元素上的箭头。当我添加箭头时,使用.heading:before
,结果如下所示:
如您所见,原始边框仍然存在,破坏了箭头及其对应的元素。
我的HTML如下:
<li class="heading">
<div class="text_contain_head">
<h1>Heading</h1><p>Subheading</p>
</div>
</li>
<li class="options">
<div class="text_contain">
<h2>Option 1</h2><p>Description</p>
</div>
</li>
<li class="options">
<div class="text_contain">
<h2>Option 2</h2><p>Description</p>
</div>
</li>
<li class="options">
<div class="text_contain">
<h2>Option 3</h2><p>Description</p>
</div>
</li>
<li class="options">
<div class="text_contain">
<h2>Option 4</h2><p>Description</p>
</div>
</li>
这是.options的CSS:
.options {
position: relative;
padding-bottom: 25%;
height: 0;
width: 25%;
background-color: rgba(0, 0, 0, 0.25);
border-right: 1px solid #FFF;
border-bottom: 1px solid #FFF;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
float: left;
}
这是.heading的CSS:
.heading {
position: relative;
padding-bottom: 25%;
width: 75%;
background-color: rgba(0, 0, 0, 0.6);
border-right: 1px solid #FFF;
border-bottom: 1px solid #FFF;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding-left: 40px;
padding-right: 40px;
float:left;
}
.heading:before {
content: "\0020";
display: block;
border: solid 20px transparent;
border-right-color: rgba(0, 0, 0, 0.6);
position: absolute;
top: 50%;
right: -40px;
margin-top: -20px;
z-index: 1002;
transform:scale(1,1.5);
-ms-transform:scale(1,1.5);
-webkit-transform:scale(1,1.5);
}
PS 我用:after
在下面添加一个偏移 1px 的白色三角形:before
来复制三角形周围的边框。
最后,我希望能够保持元素的不透明度(由于背景图像)并且仍然能够“删除”箭头重叠的原始边框。
我很难过,因此任何和所有的建议都会非常感激
这是我到目前为止所拥有的 jsfiddle:http: //jsfiddle.net/N2nZ6/1/