Problem polega na tym, że gdy fokus i pseudo-klasa są używane razem, to po kliknięciu ImageView nie wykonuje skoncentrowanej pracy pseudoklasy, a raczej wykonuje pracę bez pseudoklasy i jeśli usunę pseudoklasę hover, to działa dobrze, ale przy braku ostrości nie mogę wykonać efektu najechania. Gdzie jako l1 jest I dla użytkownika ImageView w górnej Anchorpane

Kod CSS:

#l1
{
    -fx-image : url(logo/user.png);
}
#l1:hover
{
    -fx-image : url(logo/user1.png);
}
#l1:focused
{
    -fx-image : url(logo/user1.png);
}

enter image description here

2
Bibek Bhusan Sahoo 17 grudzień 2019, 17:21
#l1:hover:focused { ... }
 – 
Slaw
17 grudzień 2019, 17:31
Próbowałem, ale po usunięciu ostrości to tylko efekt najechania nie działa
 – 
Bibek Bhusan Sahoo
17 grudzień 2019, 17:44
ImageView domyślnie nie jest aktywowany. Czy zmieniłeś to w kodzie java?
 – 
fabian
17 grudzień 2019, 20:31

1 odpowiedź

Czy to może być tak proste jak błąd ortograficzny? Wydaje mi się, że pseudoklasa, której szukasz, to :focus, a nie :focused. Zobacz tutaj: https://developer.mozilla.org/en- US/docs/Web/CSS/:focus

Nigdy nie słyszałem o :focused.


EDIT: Najwyraźniej się myliłem i faktycznie jest inaczej pisane w JavaFX CSS. Zignoruj ​​powyższe.

Biorąc to pod uwagę, tak naprawdę nie rozumiałem, co próbujesz zrobić, ponieważ twój opis nie był napisany bardzo wyraźnie. Jeśli moja powyższa sugestia nie zadziała, chętnie pomogę Ci to rozwiązać, ale potrzebuję, abyś wyjaśnił swoje pytanie.

Poza tym, jeśli dołączony fragment zawiera rzeczywiste style i nazwy identyfikatorów, mam dla ciebie tylko kilka małych sugestii.

1. l1 to naprawdę zła nazwa selektora. Oprócz tego, że jest niesemantyczny i nie daje Tobie ani przyszłym programistom żadnych wskazówek, co to właściwie jest, wpada również na problem postaci l i 1 wyglądających bardzo podobnie. Powoduje to zamieszanie z wieloma różnymi czcionkami. Najlepszą praktyką są semantyczne nazwy selektorów. Więcej informacji o dobrych konwencjach nazewnictwa CSS można znaleźć w tym przewodniku: https://cssguidelin.es/#naming- konwencje

2. Z perspektywy interfejsu użytkownika podkreślenia zwykle wskazują ludziom, że to, co jest podkreślone, jest linkiem. Podkreślenie nagłówka elementu, tak jak w przypadku „Logowania użytkownika”, jest nieco nieatrakcyjne wizualnie, a także wprowadza w błąd użytkowników. Zobacz „Zalecenia i zakazy” w wytycznych dotyczących interfejsu użytkownika WPF tutaj: https://cdn.wfp.org/guides/ui/v0.14.0/basics/typography/ Lub Wytyczne Nielsen Norman Group dotyczące wizualizacji linków tutaj: https://www.nngroup.com/articles/guidelines-for-visualizing-links/

0
Stephen M Irving 17 grudzień 2019, 18:28
Chcę użyć efektu ostrości po kliknięciu, a obraz w środku powinien się odpowiednio zmienić, ale po ponownym kliknięciu powinien się rozogniskować, a następnie, jeśli spróbuję najechać na ten ImageView, obraz powinien zmienić się zgodnie z efektem najechania
 – 
Bibek Bhusan Sahoo
17 grudzień 2019, 18:22
OP używa JavaFX, która ma swoją własną specjalną mieszankę CSS. W tym kontekście pseudoklasą fokusu jest w rzeczywistości :focused (jak udokumentowano tutaj).
 – 
Slaw
17 grudzień 2019, 18:24
Ach, więc mój błąd. Wydaje mi się to jednak dość głupie. Dlaczego mieliby decydować się na zmianę sposobu pisania selektora? Jakiemu celowi miałoby to służyć poza myleniem ludzi?
 – 
Stephen M Irving
17 grudzień 2019, 18:25
Ach, dobrze. To ma więc sens. Dzięki za wyjaśnienie, doceniam to. Wygląda na to, że gdyby zamierzali zmienić język, powinni nazwać go inaczej, aby wskazać, że jest to wariant CSS, a nie dokładnie to samo. JCSS czy coś takiego.
 – 
Stephen M Irving
17 grudzień 2019, 18:28