我发现这个codepen演示几乎可以满足我需要(http://codepen.io/web-tiki/pen/EaKPMK)。带边框的CSS箭头
HTML:
<div class="wrap">
<div class="arrow"></div>
</div>
CSS:
.wrap {
position: relative;
height:150px;
overflow: hidden;
width: 70%;
margin: 0 auto;
}
.wrap img {
width: 100%;
height: auto;
display: block;
}
.arrow {
position: absolute;
bottom: 0;
width: 100%;
padding-bottom:3%;
background-color: rgba(0, 0, 0, 0.8);
}
.arrow:before, .arrow:after {
content:'';
position: absolute;
bottom: 100%;
width: 100%;
padding-bottom:inherit;
background-color: inherit;
}
.arrow:before {
right: 20%;
-ms-transform-origin: 100% 100%;
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
-ms-transform: skewX(45deg);
-webkit-transform: skewX(45deg);
transform: skewX(75deg);
}
.arrow:after {
left: 80%;
-ms-transform-origin: 0 100%;
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
-ms-transform: skewX(-45deg);
-webkit-transform: skewX(-45deg);
transform: skewX(-75deg);
}
唯一缺少的唯一的事情是,我确实需要围绕框的边框。当我向伪元素添加边框时,倾斜部分不会产生闭合线。
.arrow:before {
right: 20%;
-ms-transform-origin: 100% 100%;
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
-ms-transform: skewX(45deg);
-webkit-transform: skewX(45deg);
transform: skewX(75deg);
border-top: 4px solid #df0000;
border-right: 30px solid #df0000;
}
.arrow:after {
left: 80%;
-ms-transform-origin: 0 100%;
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
-ms-transform: skewX(-45deg);
-webkit-transform: skewX(-45deg);
transform: skewX(-75deg);
border-top: 4px solid #df0000;
border-left: 30px solid #df0000;
}
任何想法如何使这项工作?
你确定要倾斜元素吗?如果是,那么这可能会帮助你:http://www.cssarrowplease.com/ – Krunal
我已经看过这个页面。不过,它只是产生90°角的箭头。我的箭头需要有一个灵活的角度,所以这就是我选择偏斜版本的原因。 – Swissdude
还没有时间来彻底检查你的CodePen,但你可能会发现在这个线程的答案有帮助 - http://stackoverflow.com/questions/36782245/css-triangular-cutout-with-border-and-transparent-gap/36786984#。也许很有可能调整你的笔来获得你所需要的东西。我只是给你一个可能有帮助的链接。 – Harry