CSS cursor: wszystkie wartości, własne kursory i opacity
Galeria kursorów CSS
CSS cursor: każda wartość do najechania, własne kursory, opacity | We.Inc
Najedź na kafelek każdej z 36 standardowych wartości CSS cursor, zbuduj własny kursor z obrazka z hotspotem i fallbackiem oraz dowiedz się, kiedy wygaszać elementy przez opacity, visibility lub rgba.
Właściwość cursor ustawia wskaźnik myszy widoczny nad elementem, na przykład cursor: pointer dla klikalnych elementów, not-allowed dla wyłączonych kontrolek i grab dla elementów do przeciągania. Własne kursory używają url() z obrazkiem, opcjonalnymi współrzędnymi hotspotu i obowiązkowym słowem kluczowym jako fallbackiem. Najedź na każdy kafelek poniżej, aby zobaczyć wszystkie 36 standardowych wartości w swojej przeglądarce.
Kursory, których będziesz używać najczęściej
Stan
CSS
Tailwind
Link lub przycisk
cursor: pointer
Wyłączona kontrolka
cursor: not-allowed
Można przeciągnąć / przeciąganie
cursor: grab / grabbing
cursor-grab / cursor-grabbing
Edytowalny tekst
cursor: text
Zmiana szerokości kolumny
cursor: col-resize
Zajęty, ale nadal używalny
cursor: progress
Nazwy kursorów łatwo pomylić, a każdy system operacyjny rysuje je trochę inaczej. Ta galeria pozwala najechać na każde słowo kluczowe we własnej przeglądarce, a potem pokazuje, jak zrobić własny kursor z obrazka, który nadal elegancko wraca do fallbacku, oraz pasujące sztuczki z opacity dla stanów wygaszonych i wyłączonych.
Najedź na dowolny kafelek w galerii, aby zobaczyć ten kursor tak, jak rysuje go Twój system. Kliknij kafelek, aby skopiować jego deklarację.
Użyj filtra, aby zawęzić listę do kursorów linków, zmiany rozmiaru, przeciągania lub statusu.
Otwórz kreator własnego kursora, ustaw hotspot i przetestuj efekt w polu testowym.
Przeczytaj sekcję o opacity, aby wybrać między opacity, visibility a kolorami rgba przy wygaszaniu.
Przeglądarki same pokazują pointer na linkach. Dodaj go samodzielnie do przycisków i innych klikalnych elementów, bo przyciski domyślnie pokazują strzałkę.
Trzymaj obrazki własnych kursorów w rozmiarze 32 na 32 piksele lub mniejszym. Większe obrazki mogą być ignorowane przez niektóre przeglądarki i systemy operacyjne.
Zawsze kończ listę kursorów słowem kluczowym, takim jak auto lub pointer. Słowo kluczowe jest wymagane po wartościach url().
Ekrany dotykowe w ogóle nie mają kursora, więc nigdy nie traktuj kursora jako jedynego sygnału, że coś jest interaktywne.
Najczęściej zadawane pytania
Jak zrobić własny kursor w CSS?
Napisz cursor: url(cursor.svg) 4 4, auto; gdzie obrazek to mały plik PNG, SVG lub CUR, dwie liczby to hotspot w pikselach od lewego górnego rogu, a auto to słowo kluczowe użyte jako fallback, jeśli obrazek się nie wczyta. Przed słowem kluczowym możesz podać kilka obrazków url().
Jaki kursor powinien pokazywać wyłączony przycisk?
Zwykle wybiera się not-allowed. Ustaw go przez button:disabled { cursor: not-allowed; opacity: 0.5; } i zachowaj prawdziwy atrybut disabled, aby informacja o niedostępnej kontrolce trafiła także do użytkowników klawiatury i czytników ekranu, a nie tylko myszy.
Czym różni się opacity od visibility?
opacity wygasza cały element razem z dziećmi, a w pełni przezroczysty element nadal odbiera kliknięcia i fokus. visibility: hidden wyłącza element zarówno dla wskaźnika, jak i technologii asystujących, zachowując jego miejsce. Użyj opacity do samego wygaszania, a na końcu przełącz visibility, aby niewidocznych elementów nie dało się kliknąć.
Dlaczego opacity robi przezroczystym także mój tekst?
opacity działa na wszystko wewnątrz elementu. Aby prześwitywało tylko tło, użyj półprzezroczystego koloru: background-color: rgb(0 0 0 / 0.5) albo starszego rgba(0, 0, 0, 0.5). Tekst pozostaje w pełni nieprzezroczysty.
Czy mogę ukryć kursor?
cursor: none ukrywa go nad elementem, czego czasem potrzebują gry, kioski i odtwarzacze wideo. Na zwykłych stronach używaj tego oszczędnie, bo ludzie tracą orientację, gdzie wskazują.
Kursory to podpowiedzi, a nie kontrolki
Kursor mówi użytkownikom myszy, co się stanie, zanim klikną. Pointer obiecuje cel kliknięcia, kursor tekstowy obiecuje tekst do zaznaczenia lub edycji, a strzałka zmiany rozmiaru obiecuje przeciąganie. Pointer na czymś, co nic nie robi, to złamana obietnica.
Użytkownicy klawiatury, ekranów dotykowych i czytników ekranu nigdy nie widzą tych podpowiedzi. Interaktywne elementy nadal muszą wyglądać na interaktywne, mieć widoczny styl fokusu i korzystać z prawdziwych przycisków i linków, aby ich rola była ogłaszana.
Własne kursory z obrazka, które się nie psują
Obrazek kursora jest pobierany jak każdy inny obrazek, więc wolne lub nieudane pobieranie zostawia na miejscu słowo kluczowe z fallbacku. Wbudowany SVG jako data: całkowicie omija żądanie i pozostaje ostry na ekranach o wysokiej gęstości.
Hotspot to dokładnie ten piksel, który klika. Dla strzałki jest to jej czubek, zwykle w okolicy 0 0; dla celownika lub koła jest to środek. Zły hotspot sprawia, że kliknięcia trafiają kilka pikseli obok miejsca, w które ludzie celują.
Poprawne wygaszanie elementów
Dla wyglądu wyłączonego połącz opacity około 0.5 z cursor: not-allowed i atrybutem disabled. Sprawdź, czy wygaszony tekst nadal spełnia wymagania kontrastu, jeśli ludzie muszą go przeczytać.
Przy odsłanianiu po najechaniu animuj opacity, bo jest tania w renderowaniu, i łącz ją z visibility, aby elementu nie dało się kliknąć, gdy jest przezroczysty. Kolor z kanałem alfa to właściwe narzędzie, gdy półprzezroczysta ma być tylko jedna warstwa, na przykład tło lub obramowanie.
Wszystkie 36 wartości cursor
Standardowe słowa kluczowe kursora (CSS Basic User Interface Level 4); klasy Tailwind to cursor-<value>
Wartość
Grupa
Znaczenie
Ogólne
Przeglądarka decyduje na podstawie kontekstu
Ogólne
Systemowa strzałka
Ogólne
Kursor nie jest rysowany
Linki i status
Dostępne jest menu kontekstowe
Linki i status
Dostępna jest pomoc
Linki i status
Link lub klikalna kontrolka
Linki i status
Zajęty, ale nadal można działać
Linki i status
Zajęty, jeszcze nie można działać
Zaznaczanie
Można zaznaczyć komórkę lub komórki tabeli
Zaznaczanie
Precyzyjne zaznaczanie dwuwymiarowe
Zaznaczanie
Tekst można zaznaczyć lub edytować
Zaznaczanie
Można zaznaczyć tekst pionowy
Przeciągnij i upuść
Zostanie utworzony skrót lub alias
Przeciągnij i upuść
Coś zostanie skopiowane
Przeciągnij i upuść
Coś zostanie przeniesione
Przeciągnij i upuść
Nie można tu upuścić
Przeciągnij i upuść
Ta akcja jest niedozwolona
Przeciągnij i upuść
Można chwycić i przeciągnąć
Przeciągnij i upuść
Właśnie przeciągany
Zmiana rozmiaru i przewijanie
Można przewijać w dowolnym kierunku
Zmiana rozmiaru i przewijanie
Zmiana szerokości kolumny w poziomie
Zmiana rozmiaru i przewijanie
Zmiana wysokości wiersza w pionie
Zmiana rozmiaru i przewijanie
Przesuń górną krawędź
Zmiana rozmiaru i przewijanie
Przesuń prawą krawędź
Zmiana rozmiaru i przewijanie
Przesuń dolną krawędź
Zmiana rozmiaru i przewijanie
Przesuń lewą krawędź
Zmiana rozmiaru i przewijanie
Przesuń prawy górny róg
Zmiana rozmiaru i przewijanie
Przesuń lewy górny róg
Zmiana rozmiaru i przewijanie
Przesuń prawy dolny róg
Zmiana rozmiaru i przewijanie
Przesuń lewy dolny róg
Zmiana rozmiaru i przewijanie
Zmiana rozmiaru w lewo lub w prawo
Zmiana rozmiaru i przewijanie
Zmiana rozmiaru w górę lub w dół
Zmiana rozmiaru i przewijanie
Zmiana rozmiaru wzdłuż rosnącej przekątnej
Zmiana rozmiaru i przewijanie
Zmiana rozmiaru wzdłuż opadającej przekątnej
Powiększenie
Można powiększyć
Powiększenie
Można pomniejszyć
Własny kursor z hotspotem i fallbackiem
Wbudowany kursor SVG w kształcie pierścienia, wyśrodkowany na hotspocie
Hotspot 12 12 umieszcza kliknięcie w środku pierścienia. Jeśli obrazek nie zostanie przyjęty, użyty zostanie crosshair.
Stany wyłączenia, przeciągania i zmiany rozmiaru
Kursory pasujące do interakcji
Najedź na każdy element. Karta do przeciągania przełącza się na grabbing, gdy przycisk myszy jest wciśnięty.
opacity a visibility a rgba
Jak wybrać sposób wygaszania
Technika
Działa na dzieci?
Nadal klikalny?
Płynna animacja?
Tailwind
opacity: 0.5
Tak, na wszystko wewnątrz
Tak
Tak
visibility: hidden
Tak (dzieci mogą się z powrotem włączyć)
Nie
Przełącza się natychmiast
background: rgb(0 0 0 / 0.5)
Nie, tylko ta warstwa
Tak
Tak
bg-black/50
color: rgb(17 17 17 / 0.6)
Nie, tylko tekst
Tak
Tak
text-black/60
opacity całego elementu obok półprzezroczystego tła
Lewy baner wygasza tekst razem z ramką. Prawy zachowuje ostry tekst na prześwitującym tle.