Ok, więc wszyscy wiedzą, że możesz utworzyć trójkąt, używając tego:
#triangle {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
}
A to tworzy solidny, wypełniony trójkąt. Ale jak zrobić trójkąt w kształcie pustej strzałki, taki jak ten?
html
css
css-shapes
Tommay
źródło
źródło
Odpowiedzi:
Możesz użyć pseudoelementu
before
lubafter
i zastosować do niego trochę CSS. Jest wiele sposobów. Możesz dodać obabefore
iafter
, i obrócić i ustawić każdy z nich, aby utworzyć jeden z pasków. Łatwiejszym rozwiązaniem jest dodanie dwóch granic do samegobefore
elementu i obrócenie go za pomocątransform: rotate
.Przewiń w dół, aby znaleźć inne rozwiązanie, które używa rzeczywistego elementu zamiast elementów pseuso
W tym przypadku dodałem strzałki jako punktory na liście i użyłem
em
rozmiarów, aby dopasować je do czcionki listy.Oczywiście nie musisz używać
before
lubafter
, możesz zastosować tę samą sztuczkę również do zwykłego elementu. W przypadku powyższej listy jest to wygodne, ponieważ nie potrzebujesz dodatkowych znaczników. Ale czasami i tak możesz chcieć (lub potrzebować) znaczników. Możesz użyć do tegodiv
lubspan
, a nawet widziałem, jak ludzie przetwarzają teni
element na „ikony”. Więc ten znacznik mógłby wyglądać jak poniżej. To, czy użycie<i>
do tego jest właściwe, jest dyskusyjne, ale możesz również użyć do tego zakresu, aby być po bezpiecznej stronie.Jeśli szukasz więcej inspiracji, koniecznie sprawdź tę niesamowitą bibliotekę czystych ikon CSS autorstwa Nicolasa Gallaghera . :)
źródło
border-color
, ponieważ strzałka nie jest w rzeczywistości znakiem, ale ramką. Aby ustawić pozycję, możesz dodaćposition: relative
strzałkę i przesuwać ją za pomocątop
ileft
. Pokazałem zarówno w zmodyfikowanym pierwszym fragmencie, jak i pozycjonowanie w drugim fragmencie. Zwróć uwagę na ładną kombinację,li:hover::before
która odnosi się dobefore
pseudoelementu elementu listy najechanej kursorem.0
, więc do usunięcia wszelkich białych znaków potrzebny byłby margines ujemny. Na przykład w drugim fragmencie możesz dodać,margin-left: -0.4em;
aby umieścić strzałkę obok poprzedniego słowa bez spacji.Można to rozwiązać znacznie łatwiej niż inne sugestie.
Po prostu narysuj kwadrat i zastosuj
border
właściwość tylko do dwóch łączących się stron.Następnie obróć kwadrat zgodnie z kierunkiem, w którym ma wskazywać strzałka, na przykład:
transform: rotate(<your degree here>)
źródło
Czułe szewrony / strzały
ich rozmiar automatycznie z tekstem i są barwione w tym samym kolorze. Podłącz i graj :)
jsBin Demo Playground
źródło
v. 6.2.0 September 2012 1
UnicodeUTF-8
wzrosła do 110182, a teraz mając HTML5 i domyślny UTF-8 i wygląda dobrze, nasza postać wygląda dobrze: unicode.org/Public/UNIDATA/UnicodeData.txt\231d
postać może być dostępna tutaj, ale nie na komputerze Mac lub urządzeniu z Androidem. Wersja HTML i kodowanie odpowiedzi nie mają z tym nic wspólnego.Oto inne podejście:
1) Użyj znaku mnożenia:
×
×2) Ukryj połowę za pomocą
overflow:hidden
3) Następnie dodaj trójkąt jako pseudoelement końcówki.
Zaletą jest to, że nie są potrzebne żadne przekształcenia. (Będzie działać w IE8 +)
SKRZYPCE
źródło
Po prostu użyj pseudoelementów przed i po - CSS
źródło
Inne podejście wykorzystujące obramowania i brak właściwości CSS3 :
źródło
>
sama w sobie jest wspaniałą strzałą! Po prostu dodaj do niego element div i nadaj mu styl.źródło
Strzałka w lewo w prawo z efektem zawisu przy użyciu sztuczki Roko C. Buljan box-shadow
źródło
Musiałem zmienić
input
strzałkę w moim projekcie. Poniżej znajduje się praca końcowa.Tutaj Fiddle
źródło
Podobny do Roko C, ale trochę większa kontrola nad rozmiarem i położeniem.
źródło