Sì, è possibile! È rotate
la scatola, dargli un border-radius
e utilizzare uno linear-gradient
come background
.
DEMO
HTML:
<div class='arrow'></div>
CSS:
.arrow {
width: 7em;
height: 7em;
border-radius: 0 0 2em 0;
margin: 5em;
transform: rotate(45deg);
background: linear-gradient(-45deg, black 50%, transparent 50%);
}
Se si desidera che l'angolo della freccia di essere diversi, allora si può anche skew
esso.
Prendere in considerazione il fatto che questa volta CSS gradients are not supported by IE9 (non sto dicendo "o più vecchio" perché si parla di CSS3 tra i tag). In tal caso, la soluzione sarebbe utilizzare uno sfondo solido e in qualche modo assicurarsi che la parte superiore non venga mostrata, coprendola con un elemento precedente o ritagliandola (vedere the answer Tim Medora fornito).
Inoltre, a questo punto non v'è ancora alcun supporto per la sintassi senza prefisso (anche se questo cambierà presto: D), per cui sarà necessario o aggiungere manualmente i prefissi -webkit-
, -moz-
e -o-
. (Non li ho aggiunti nella demo perché Dabblet utilizza -prefix-free che si occupa di fare ciò.)
Non pensare css ha la capacità endcap (ma non ho guardato troppo da vicino css3 ancora, quindi probabilmente sbagliato su questo c ount), ma l'elemento canvas html5 ha endcaps. –
può essere fatto ma ha bisogno di qualche trucco o puoi farlo html5? con gli script di canvas –
Orientamento diverso, ma questo può essere utile: http://stackoverflow.com/a/12042194/453277 –