2015-04-21 12 views
5

Sto cercando di creare un banner con una forma triangolare alla fine.Banner con forme ad angolo

.wrapper { 
 
    padding: 50px; 
 
    font-size: 0px; 
 
    line-height: 0%; 
 
    width: 0px; 
 
    border-top: 20px solid gray; 
 
    border-bottom: 20px solid gray; 
 
    border-right: none; 
 
}
<div class="wrapper">TEXT HERE</div>

enter image description here

+0

uso pseudo elementi –

+1

Perché il voto verso il basso? Ha provato la cosa che ha pubblicato –

risposta

3

Solo voi aiutare con questo come y S ei provato ma non ha funzionato come previsto ... Quindi idea di base è che siamo in grado di utilizzare gli elementi CSS pseudo per creare in tal senso ..

Demo

.wrapper { 
    background: #C3C3C3; 
    padding: 20px; 
    font-size: 40px; 
    font-family: Arial; 
    text-align: center; 
    position: relative; 
} 

.wrapper:after { 
    content: ""; 
    width: 0; 
    height: 0; 
    border-top: 42px solid transparent; 
    border-bottom: 42px solid transparent; 
    border-right: 40px solid white; /* Tweak this to increase triangles height */ 
    position: absolute; 
    right: 0; 
    top: 0; 
} 

Qui, sto facendo nulla Fantasia, stiamo usando uno pseudo elemento, ovvero nient'altro che un elemento virtuale che non esiste nel DOM ma possiamo inserirlo usando CSS e posizionando questo pseudoelemento sul lato destro del tuo wrapper. Questo ti aiuterà a ottenere la fine del nastro. Si noti che il colore del triangolo è hardcoded e non è trasparente.

+0

Se volevo che non andasse per tutta la lunghezza della pagina devo implementare qualcosa come width: 200px; nel wrapper? –

+1

@BhoffDev Sì, assicurati solo che il tuo testo sia nei limiti altrimenti si sovrapporrà o si nasconderà dietro al triangolo ... inorder per evitare che assegni un po 'padding-right' al tuo elemento wrapper in modo che impedisca il testo se è una lunga stringa –

2

Prova questo funziona

.wrapper { 
 
    font-family: arial; 
 
    font-size: 12px; 
 
    color: white; 
 
    background-color: black; 
 
    border: 1px solid white; 
 
    padding: 8px; 
 
    width: 100px; 
 
    text-align: center; 
 
    position: relative; 
 
} 
 
.wrapper:after { 
 
    content: ''; 
 
    position: absolute; 
 
    border-top: 16px solid transparent; 
 
    border-bottom: 16px solid transparent; 
 
    border-right: 16px solid white; 
 
    z-index: 10; 
 
    top: 0px; 
 
    right: 0px; 
 
}
<div class="wrapper">TEXT HERE</div>

2

ecco il violino. https://jsfiddle.net/nileshmahaja/s5egaebr/

Ho usato: dopo il selettore sul wrapper div.

CSS

.wrapper { 
    padding: 0 50px; 
    font-size: 0px; 
    line-height: 0%; 
    width: 0px; 
    height:120px; 
    background:#ddd; 
    position:relative; 
    width:500px; 
} 

.wrapper:after { 
    content:''; 
    width: 0px; 
    height: 0px; 
    border-top: 60px solid transparent; 
    border-bottom: 60px solid transparent; 
    border-right: 60px solid #fff; 
    position:absolute; 
    right:0 
} 
+0

Ho usato la larghezza: 500px; nell'involucro combinato con la risposta di Mr. Allens per ottenere il mio prodotto finale. –