Implementace CSS3 selectorů v JavaScriptu
Pro účely jedné, velice speciální a nakonec nikdy nedokončené, zakázky, bylo potřeba vytvořit implementaci CSS3 selectorů v JavaScriptu. Implementace je hotová, funkční a otestovaná, ale již není potřeba, tak se o ní podělím alespoň tady na blogu.
Jedná se o (v rámci možností) kompletní implementaci, která si poradí i s takovými záludnostmi, jako je zápis pomocí unicode. Např. takovýto selector není problém:
:not(:root):not(form):first-child:not(:lang(en)) > div:first-child ~ div
Při hledání elementů se využívají pouze standardní DOM metody (tudíž žádná konverze na XPath, jak je bežné pro podobné knihovny psané pro prostředí Internetu). Script nebyl příliš optimalizováno z hlediska rychlosti a ani IE nebyl brán v potaz, neb to nebylo v zadání. Důraz byl kladen především na věrnou implenetaci všech selectorů dle specifikace od W3C.
https://github.com/jkbr/Selectors
Vyzkoušet možnosti knihovny je možné přímo z prohlížeče na speciální testovací stránce.
K dispozici je také aplikace na oficiální sadu testů z dílny W3C. Při zkoušení těchto testů je potřeba mít na paměti, že při aplikování vlastností není brána v potaz priorita, takže i v případě, že např. barva nesedí, nemusí to nutně znamenat, že jde o chybu scriptu (a vice versa).
Similar posts:
Tags: css, javascript, webdev