Tak, to jest możliwe! Ty rotate
pole, daj mu border-radius
i użyj 45deg
linear-gradient
jako 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%);
}
Jeśli chcesz kąt strzałki być inaczej, to można również skew
to.
Weź pod uwagę fakt, że CSS gradients are not supported by IE9 (Tym razem nie mówię "starszy", ponieważ wspomniałeś o CSS3 wśród tagów). Rozwiązaniem w takim przypadku byłoby użycie solidnego tła i upewnienie się, że górna część nie pojawi się, albo przez pokrycie go poprzednim elementem, albo przez przycięcie go (patrz the answer Tim Medora).
Również w tym momencie nadal nie ma wsparcie dla składni bez prefiksu (choć będzie to wkrótce zmienić: D), więc trzeba będzie ręcznie dodać przedrostki -webkit-
, -moz-
i -o-
. (Nie dodałem ich w demie, ponieważ Dabblet używa -prefix-free, który dba o to.)
Nie myśl css ma zaślepki możliwość (ale nie wyglądał na zbyt ściśle CSS3 jeszcze, więc prawdopodobnie źle w tym c ount), ale element canvas html5 ma końcówki końcowe. –
można to zrobić, ale trzeba trochę hack lub możesz to zrobić html5? ze skryptami canvas –
Inna orientacja, ale może to być pomocne: http://stackoverflow.com/a/12042194/453277 –