Nie ma takiej pseudoklasy. Nie ma takiej potrzeby, kiedy możesz po prostu użyć :not(:hover). Celem :not()pseudoklasy jest umożliwienie autorom pisania negacji bez konieczności określania oddzielnych negacji każdej istniejącej (i przyszłej) dynamicznej pseudoklasy, w której element może tylko pasować lub nie pasować do pseudoklasy.
Na przykład tylko niektóre elementy mogą być :enabledalbo :disabled- większość elementów nie jest żadną, ponieważ semantyka po prostu nie ma zastosowania - ale element może być wyznaczony tylko przez urządzenie wskazujące ( :hover) lub nie ( :not(:hover)). Zapewnienie negacji, które można już osiągnąć bezpośrednio za pomocą :not(), znacznie podważyłoby jego użyteczność (chociaż nadal można by go użyć do zanegowania dowolnego innego prostego selektora - lub całych złożonych selektorów w przyszłości ).
Argument, że taka pseudoklasa byłaby mniej kosztowna obliczeniowo, jest dość słaby. Najbardziej naiwnym wdrożeniem takiej pseudoklasy byłoby dosłowne :not(:hover)sprawdzenie, co nie byłoby lepsze. Wszelkie bardziej złożone lub zoptymalizowane implementacje i prosisz dostawców o zaimplementowanie pseudoklasy, która jest albo tak szybka, albo nawet szybsza niż :not(:hover)coś, co jest już wystarczająco rzadkie w przypadku użycia, biorąc pod uwagę inne dostępne opcje, takie jak kaskadowanie i :not(:hover)(np. gdy kaskadowanie nie wchodzi w grę), do których łatwo masz dostęp. Po prostu nie uzasadnia czasu i wysiłku, aby specyfikować, wdrażać i testować alternatywę dla co najmniej jednej innej istniejącej metody, która jest w 100% funkcjonalnie równoważna (i ma zastosowanie do co najmniej80% scenariuszy). Jest też kwestia nazwania takiej pseudoklasy - nie zaproponowałeś jej nazwy i nie mogę wymyślić dobrej. :not-hoverjest krótszy tylko o dwa bajty i tylko nieznacznie mniej pracy przy wpisywaniu. Jeśli już, jest to potencjalnie bardziej zagmatwane niż :not(:hover).
Jeśli martwisz się o specyficzność, zwróć uwagę, że sama :not()pseudoklasa nie jest liczona jako swoistość; tylko jego najbardziej konkretnym argumentem jest . :not(:hover)i :hoversą równie konkretne. Tak więc specyficzność też nie jest problemem.
Jeśli martwisz się o obsługę przeglądarek, taka pseudoklasa, jeśli została wprowadzona, prawdopodobnie została wprowadzona razem :not()z selektorami lub na późniejszym poziomie, ponieważ nie pojawiła się w CSS2 (gdzie :hoverpo raz pierwszy została wprowadzona ponad 17 lat temu, a po raz pierwszy wdrożony w IE4 jeszcze rok wcześniej). Wprowadzenie go na późniejszym poziomie byłoby bezcelowe, ponieważ autorzy byliby po prostu zmuszeni do kontynuowania korzystania, :not(:hover)dopóki przeglądarki i tak nie zaczną implementować tej nowej pseudoklasy i nie mieliby powodu do zmiany.
Zauważ, że to nie to samo, co poniższe pytanie, które mówi o zdarzeniach i stanach (pierwotnie dotyczy :focusraczej niż :hover, ale obowiązuje ta sama zasada): Czy CSS ma selektor: blur (pseudoklasa)?
element:not(:hover)użyjelement.