我發現這個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