Přejít k navigační liště

Zdroják » Webdesign » CSS pravidla any-pointer a any-hover

CSS pravidla any-pointer a any-hover

Články Webdesign

CSS pravidla @media any-pointer a any-hover slouží k detekci přesnosti a typu ovládání. Ukážeme vám, jak na ně.

Text vyšel původně na webu autora.

Kromě toho, že se koncová zařízení pro prohlížení webových stránek liší rozměry obrazovky (například od cca 4″ mobilů po 50″ televize), odlišují se také způsobem ovládání. Zjednodušeně se weby ovládají:

  • myší,
  • dotyky prstů,
  • dotykovým perem (stylusem)

Některá zařízení navíc umožňují způsoby ovládání kombinovat – typicky notebooky s dotykovou obrazovkou nebo tablet s připojenou myší.

Pro případné odlišení ovládacích prvků pomocí CSS v závislosti na schopnostech ukazatele byla zavedena @media pravidla any-*.

Test podpory

Podpora v prohlížečích any-pointer a any-hover k dnešnímu dni:

Samostatná živá ukázka – rozlišení dotykového zařízení a ovládání myší. (V podporovaných prohlížečích budou některá z políček zelená v závislosti na dostupných způsobech ovládání.)

Zápis

@media (any-hover: hover) {
  /* zařízení je schopno :hoveru */
}

Pravidla any-* se dělí na hover (najetí) a pointer (ukazatel).

any-hover

První pravidlo dokáže detekovat, jestli je zařízení schopno :hoveru.

@media (any-hover)
Zařízení dokáže nějak hover vytvořit.
@media (any-hover: none)
Hover není podporován.
@media (any-hover: on-demand)
Hover je možné vyvolat, byť komplikovanějším způsobem. Typicky mobilní prohlížeče vyvolávají :hover po delším podržení prstu.
@media (any-hover: hover)
Zařízení nemá žádný limit ve vyvolávání hoveru. Typicky počítač/notebook/tablet s myší.

any-pointer

Pravidlo any-pointer slouží k vytvoření podmínky na přesnost ukazatele.

@media (any-pointer)
Zařízení má nějaký ukazatel.
@media (any-pointer: coarse)
Přesnost ukazatele není nic moc (coarse je anglicky hrubý). Týká se zejména ovládání prsty u dotykových obrazovek (mobily, tablety, …).
@media (any-pointer: fine)
Ukazatel je velmi přesný. Typicky ovládání myší na desktopu/notebooku.

hover

Existuje ještě pravidlo hover bez any:

@media (hover: hover) {
    /* primární ovládání umí hover (myš/touchpad) */
}

@media (hover: none) {
    /* primární ovládání neumí hover (dotyková obrazovka) */
}

Dle specifikace by hover mělo znamenat, že primární ovládání umí hover, zatímco any-hover, že nějaký způsob ovládání umí hover.

V praxi se mi nepodařilo zpozorovat rozdíl.

Detekce dotykové obrazovky

Asi nejzajímavější využití any-hover a any-pointer je detekce dotykového způsobu ovládání, které je jinak obtížně proveditelné.

Jde sice provést něco jako:

if ('ontouchstart' in window) {
  // podporuje dotyky
}

Ale to skončí positivně i na noteboocích s dotykovou obrazovkou, kde je připojena myš / dostupný trackpoint nebo touchpad.

Detekovat :hover by se zase nabízelo například při onmousemove. Tuto událost ale z důvodů kompatibility provádějí i dotyková zařízení. Při tapnutí se vyvolají následující události v uvedeném pořadí:

  1. touchstart
  2. touchmove
  3. touchend
  4. mouseover
  5. mousemove
  6. mousedown
  7. mouseup
  8. click

Nabízí se tak pro určení hoveru na stránce poslouchat pohyb myši (mousemove) a v případě, že nejde o pohyb mezi touchstart a click, považovat zařízení za schopné hoveru.

Detekce

Samostatná živá ukázka – detekce podpory dotyků a hoveru v JavaScriptu.
Hlavní problém této detekce je v tom, že se provede až v okamžiku, když návštěvník pohne myší.

Další odkazy

 

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře

EmDash: Duchovní nástupce WordPressu, který řeší bezpečnost pluginů

Cloudflare přichází s ambiciózním projektem EmDash, který chce přepsat pravidla správy webového obsahu a nahradit dlouholetou dominanci WordPressu. Nový open source CMS, vytvořený za pouhé dva měsíce s pomocí AI, sází na moderní architekturu, důraz na bezpečnost i monetizaci a řeší klíčové problémy, které WordPress provázejí už desítky let.

Project Glasswing: Anthropic mění pravidla kybernetické bezpečnosti

AI
Komentáře: 0
Nový AI model Claude Mythos Preview dokáže autonomně nacházet bezpečnostní díry v každém hlavním operačním systému i prohlížeči – včetně zranitelností starých desítky let, které přežily miliony automatizovaných testů. Anthropic se rozhodl tuto schopnost nasadit jako nástroj obrany a svolal koalici dvanácti technologických gigantů – od Amazonu přes Microsoft až po JPMorganChase. Se závazkem 100 milionů dolarů a přístupem pro více než 40 organizací spravujících kritickou infrastrukturu je Project Glasswing závodem s časem: zajistit, aby obránci byli s těmito schopnostmi dřív než útočníci.

Git Worktree + Claude Code: paralelní vývoj a AI agenti ve více větvích najednou

Git worktree posouvá práci s větvemi na úplně jinou úroveň – místo neustálého přepínání a stashování nabízí paralelní pracovní prostředí nad jedním repozitářem. V kombinaci s nástroji jako Claude Code navíc otevírá dveře k běhu více AI agentů současně, každý izolovaně ve své větvi, bez kolizí a zbytečné režie.