Uso creativo dei bordi per ottenere questo effetto, nessuna immagine è stata danneggiata nel seguente esempio e si può anche impostare la posizione della freccia sull'elemento stesso - diventa più semplice se si può hardcode per il proprio disegno.
HTML
<div class="top">
<span class="arrow" style="left:40%"></span>
</div>
CSS
.top {
background:url(http://blog.positscience.com/wp-content/uploads/2013/08/ice-cream3.jpg);
background-size:cover;
width:300px;
height:300px;
border:1px solid #888;
position:relative;
overflow:hidden;
}
.arrow {
border:30px solid #aaa;
border-bottom:none;
border-color:transparent #aaa transparent #aaa;
position:absolute;
left:0;
bottom:0;
}
.arrow:before, .arrow:after {
content:'';
position:absolute;
width:5000px;
bottom:0;
height:30px;
background:#aaa;
}
.arrow:before {
right:30px;
}
.arrow:after {
left:30px;
}
Working JSfiddle sample.
Or the full integrated sample here.
fonte
2013-10-05 16:17:47
È possibile, ma non terribilmente bello ... Andrò a modificare qualcosa. –
Sto votando una riapertura su questa domanda - se questo tipo di domanda non è consentita non possiamo avere ** nessuna ** "come faccio a raggiungere complesse X effetto in CSS" domande mentre queste sono spesso quelle interessanti per scoprire trucchi come ho dimostrato di seguito. Se non sai che 'border' funziona così negli angoli, non ci penserai mai. –
puoi anche controllare questa domanda: http://stackoverflow.com/questions/23758922/transparent-css-arrow-triangle-over-an-image –