Container queries. Revoluce při tvorbě webů?

Web a webové stránky
Tipy a triky
< | 3 minuty čtení | Tom />
container queries
V loňském roce byla v CSS představena revoluční novinka - @container queries. V CoreApp Technologies se zaměřujeme na tvorbu moderních webů, a proto jsme se rozhodli tento nový prvek důkladně prozkoumat. Jak se @container queries liší od tradičních media queries, jak se používá a kde najde své uplatnění při realizaci vašeho webu? V tomto článku vám přinášíme odpovědi na tyto otázky a ukážeme vám, jak můžete tuto novinku efektivně využít pro ještě lepší responzivní design.

Aktuální situace

V dnešní době, když chce kodér přizpůsobit web cílovému zařízení, musí se uchýlit buď k matematickým funkcím a relativním jednotkám, @media queries nebo nějaké kombinaci těchto dvou přístupů. Je to poměrně snadný způsob, jak vytvářet responsivní weby, především s funkcemi, které poskytují css frameworky jako bootstrap a jemu podobné. Tento přístup má i svoje úskalí. Pro nováčka je obtížné se vyznat ve všech relativních jednotkách a když už je vidí použité, tak pořád nezná jejich přesný účel (např. plovoucí velikosti fontu). Další z problému je závislost na velikosti okna místo toho, aby se daly prvky měnit podle velikosti prostoru, ve kterém jsou umístěné. Poslední problém řeší @container queries, které k tomu přidávají ještě další vylepšení.

Novinka ve formě @container queries

Výše zmíněná novinka v css dává konečně možnost kodérovi přizpůsobovat jednotlivé prvky podle velikosti containeru, ve kterém jsou umístěné. Kromě velikosti lze upravovat prvky i podle hodnot stylů vypočítaných prohlížečem na daném containeru. To se hodí například, pokud budete chtít na tmavém containeru zobrazit světlý text a naopak. Možnost reagovat na css vlastnosti ještě není podporovaná. Jednotlivé containery se dají pojmenovat, takže i když je jich více zanořených v sobě, dá se cíleně odkazovat na vyšší než je nejbližší danému prvku.

A jak je to s podporou? Podle caniuse je podpora poměrně solidní. Tím, že se prohlížeče snaží co nejrychleji aktualizovat svoje jádra aby plnila co nejnovější populární trend, nebývá v poslední době problém používat moderní a nové specifikace ať už se jedná o css nebo JavaScript.

Použití

Použití je poměrně snadné. Prvku, který má sloužit jako container, stačí nastavit css vlastnost container-type: inline-size, čímž se vytvoří nový obsahový blok. Pokud chcete container i pojmenovat, pak k této vlastnosti přidejte ještě vlastnost container-name: name-of-container, nebo je můžete skombinovat do jedné container: name-of-container / inlize-size.

Odkazovat se na něj pak můžete přes @container query, ve kterém se podle podmínky buď provede obsah těla nebo ne. Podmínka se může skládat z více podpodmínek spojených logickými spojkami.Podmínky můžou být podle velikosti, css vlastností nebo proměnných. Více se můžete podívat v ukázce.

Jednotky

Nebyla by to správná aktualizace css bez nových jednotek. K container queries přibylo několik relativních jednotek, které sice na první pohled vypadají jako změť písmenek, ale svůj význam mají.

  • qw - 1% šířky containeru

  • qh - 1% výšky containeru

  • qi - 1% inline* velikosti containeru

  • qb - 1% block* velikosti containeru

  • qmin - menší z hodnot qi a qb

  • qmax - větší z hodnot qi a qb

Další použití a vývoj při tvorbě webů

Přestože je příchod container queries v css velkou revolucí, jak se budou psát responsivní weby, tak media queries nejsou stále odepsané. Ať už kvůli globálnímu charakteru, tak kvůli podpoře, kdy u container queries naprosto chybí možnost používat styly v podmínkách. Další důvod je ten, že je media query mnohem více zažité a v používaných css frameworcích více zakořeněné.

Nejnovější články

<Technologie a příběhy klientů />

Globální výpadek systému Windows – Co se stalo a jak tomu předcházet?

Jak poznat webosaura, aneb můj web by potřeboval modernizaci

Proč si Nechat Udělat Web na Míru?