Często znajduję się w sytuacjach, w których muszę wyświetlać menu po najechaniu kursorem, a w przypadku urządzeń mobilnych menu powinno otwierać się po kliknięciu. Teraz np. rozważyć następujący przykład:CSS: hover /: focus vs click event na (mobilnym) urządzeniu dotykowym
.btn {
width: 200px;
background-color: #333;
color: white;
padding: 10px;
}
.menu {
display: none;
padding: 15px;
}
.btn:hover .menu {
display: block;
}
.btn:focus .menu {
display: block;
}
<div class="btn">
Button
<div class="menu">I am menu</div>
</div>
Teraz to automatycznie działa na urządzeniach mobilnych, ponieważ stan aktywowanych jest lepki na urządzeniach dotykowych. Ale czy ten hack ma zastosowanie do wszystkich urządzeń dotykowych? Czy to jest warte ryzyka? Czy jest jakieś urządzenie dotykowe, które nie ma stanu "najeżka"? Oczywiście alternatywą jest przypisywanie zdarzeń dotykowych/kliknięć za pomocą JavaScript na urządzeniach dotykowych, ale wydaje się to zbędne, ponieważ nie widziałem żadnego urządzenia dotykowego, które nie ma lepkich stanów unoszących się w powietrzu.
Więc moje pytanie brzmi:
Czy mogę używać hack stanu aktywowanych lub należy użyć zdarzenia JavaScript, aby uczynić go bardziej kuloodporne?
pójdę z nim, powinno być dobrze. – Roberrrt
@Roberrrt Naprawdę, zawsze stosowałem to podejście w mojej poprzedniej pracy, ale teraz jestem mało podejrzany. – user31782
Powinno być w porządku. –