Responzivní Mobile First s pomocí body tříd 6. 5. 2013

Jak tady často zmiňuji, bývá výhodné vrstvit preprocesorem  zpracovávaný CSS kód od mobilních (nebo křápovitých) zařízení směrem vzhůru k desktopovým. Problémová děcka, Internet Explorer verze 8 a starší, ovšem nerozumí Media Queries, pomocí kterých vrstvy stavíme. Dá se to naštěstí řešit pomocí preprocesorů.

Na hezkou alternativu řešení mě na nedávném školení pro eSportsMedia přivedl Petr Kysela. Několikrát jsem ji vyzkoušel a nyní prohlašuji, že ji celým svým kóderským srdcem miluji.

Body třída, cože?

Body třída neboli body class. Zkušenější vědí. Ostatním pomůže kus HTML kódu:

<!DOCTYPE html>
<!--[if lt IE 9]><html class="old-ie"><![endif]-->
<!--[if gt IE 8]><!--><html><!--<![endif]-->

↳ Díky přítomnosti třídy .old-ie pak v CSS kódu můžeme všechny osmičkové a starší Explorery zacílit krásným selektorem typu .old-ie .selektor. Nepostradatelná technika.

Body třídy a responzivní Mobile First

Pomocí preprocesoru a selektoru z body třídy teď můžeme krásně zacílit starší Explorer a například mu pošeptat: „Brachu, vykašli se na fluidní layout. Vím, že se u něj zadýcháváš. Chci po tobě jen fixní rozměry.” —

.container-fluid {
  max-width: 940px; // Fluidni layout

  .old-ie & {
    width: 940px; // Fixni layout
  }
}

Výhodné to je například na webech, kde používáme nějaké to Background Size, které osmičkový Explorer nepodporuje.

Teď už víme dost, abychom porozuměli následujícímu LESS kódu a podstatě tohoto článku:

.nav {
  .nav-small-screen; 

  // Verze pro velke displeje
  @media (min-width: @largeScreenStart) {
    .nav-large-screen;
  }

  // Verze pro IE8-
  .old-ie & {
    .nav-large-screen;
  }
}

↳ Stejný kus kódu, který věnujeme zařízením s určitou minimální šířkou velikosti okna (velké displeje), tedy předložíme i Exploreru ve verzi 8 a starších.

Kód by samozřejmě mohl být elegantnější, kdyby LESS uměl spojit media query (@media (min-width: @bigScreenStart)) se selektorem body třídy (.old-ie &) do jednoho selektory. Jenže to by pak bylo moc jednoduché. Není důvod nevěřit, že tuhle drobnost vývojáři LESSu dříve či později vyřeší.

Využíváme síly LESSu a mixin .nav-big-screen si nadefinujeme někde bokem. Jeden kus kódu využijeme na více místech. Už jsem vám říkal, jak úžasné jsou mixiny a že preprocesory prostě musíte používat?

Jaké breakpointy zvolit v responzivním webdesignu? 27. 3. 2013

Stručná odpověď: Vezměte třeba ty co používá Bootstrap.

Pokud ovšem Bootstrap nebo jiný front-end framework nepoužíváte a první responzivní weby máte za sebou, jediná dobrá odpověď zní:

Zapomeňte na breakpointy.

Breakpointy jsou hraniční rozměry displeje zařízení, které se obvykle používají pro vykolíkování revíru, ve kterém bude web vypadat přibližně stejně. Obvykle svádí k rozdělení zařízení do skupin — typicky smartphony, tablety a desktop.

Číst dál…

Responzivní média se zachováním poměru stran 5. 3. 2013

řešení pro obrázky si už cvrlikají i responzivní vrabci na střeše, jenže pokud chceme do stránky vkládat Youtube videa nebo třeba mapy, musíme na to jinak. Pro elementy <video><ifra­me> nebo <object> používám staré řešení proporciální změny velikosti elementu.

V HTML musíme element musíme nejdříve obalit stylováníhodným rodičem:

 <div class=”rwd-media”>
 <iframe>…</iframe>
</div>

V CSS pak flexibilnost elementu a zároveň zachování poměru stran zajistíte takto:

.rwd-media {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%; /* 16:9 */
}

.rwd-media iframe,
.rwd-media video {
  position: absolute;
  width: 100%;
  height: 100%;
}

Číst dál…

Dočasná nutnost serverové detekce mobilních zařízení 28. 2. 2013

Serverová detekce zařízení pro účely úpravy prezentace obsahu není žádná ostuda. Je to nutnost, často i u malých webů. Tam zřejmě jen dočasná.

V dalším díle miniseriálu o mobilní verzi miniwebu se mrkneme kde a proč ji u ubytovani-provence.cz používáme a ponoříme se zlehka do technikálií kolem.

Číst dál…

Mobile First prakticky s CSS preprocesorem Stylus 10. 2. 2013

Jednou za čas pomáhám kamarádce s webem o jejich apartmánu v Provence. A vždycky je to příležitost experimentem osahat v hlavě uzrálé webařské teorie. Tentokrát se všechny týkaly uzpůsobení webu mobilním zařízením. Překvápko, že ano? :)

Pojďme si formou miniseriálu ukázat několik řešení potenciálně zajímavých i pro vás. V první části se podíváme na konkrétní aplikaci strategie Mobile First. Zde pomocí nejmladšího z trojice neznámějších CSS preprocesorů — Stylus.

Číst dál…

Mobile First v CSS 3. 2. 2013

Nebohá designérská strategie Mobile First se do technického světa dostala aniž by to chtěla. Ve světě webového front-endu by se dala strčit do škatule Progressive Enhancement a vůbec by neprotestovala. Vždyť co jiného v „technickém Mobile First” děláme než navrhujeme nejprve řešení pro horší zařízení a postupně jej vylepšujeme pro ta pokročilejší?

Číst dál…

Nový HTML5/CSS3 workshop a jarní termíny školení 28. 1. 2013

Ačkoliv školení při nekonečném hledání optimálního tvaru procházejí stálým zastřihováním, do druhého školícího roku vstoupíme s radikálnějším střihem. Nic jako melír pro rok 2013. Nebojte, nůžky už leží v šuplíku a uši zůstaly na původním místě. :-)

Číst dál…

Front-end knížky 2012 14. 1. 2013

Seznam profesní četby co mi prošla Kindlem za loňský rok seřazený od nejhoršího kousku k tomu nejlepšímu.

Responsive Web Design — Ethan Marcotte

Téma loňského roku, řekl bych. Ale myslím, že dnes už vám bude stačit přečíst si pár článků. Máte za sebou? Knížku si nekupujte. Ethan nejde moc za klasický responzivní webdesign. O tom si myslím, že nám dnes už nestačí.

Číst dál…

HTML5 strukturální elementy stojí za starou bačkoru 20. 12. 2012

Webdesignový lid se ve vztahu k technologickým novinkám hemží mezi dvěmi póly.

Na prvním sedí fousatí, obtloustlí „techno-bručouni”. Jednou se něco naučí a pak to aplikují dokud jim za to někdo platí. Vždyť každá změna je změnou k horšímu. Jedou v HTML2.0.

A na druhém pólu nadšeně poskakují hipsterské patky „techno-hrotičů”.  Dva projekty nedělají ve stejné technologii. „HTML3.2 je mrtvé, používejte HTML4!” — „HTML4 je mrtvé, používejte XHTML!” — „XHTML je mrtvé, používejte HTML5!” —  „HTML2.0? WTF? LOL!!!”

Číst dál…

Implementace tak ve výsledku používá nejnovější prostředky dostupné na webu, což má za nepříjemný následek, že třeba Internet Explorer 9, stále aktuální verze, není plně podporována (stejně tak Chrome na Linuxu a trochu problematická je i Opera). Je to poměrně velký kompromis, ale šli jsme do něj, protože aspoň nějakou implementaci máme pro všechny browsery (když nejsou dostupné 3D transformace, použijeme pomalejší 2D, a když ani ty nejsou dostupné, obrázky se staticky napozicují a animace se nekonají) a do budoucna předpokládáme, že podpora 3D transformací bude rychle narůstat.

píše Borek Bernard ve Zkušenostech z vývoje WebShotteru. Sami se na ten Time Machine efekt podívejte. Cool co? Dobře, na volbě technického řešení se tady asi výrazně promítlo, že si autoři chtěli vyzkoušet HTML5 technologie. Nicméně z čistě technického pohledu vznikla moc hezká odpověď na otázku: „Proč používat nové technologie když nefungují ve starých prohlížečích?” Zní: „V každém prohlížeči něco funguje.”

Starší články →

Školení od autora
17/5 Dnešní webový front-end Internet Info, Praha
10/6 Mobilní a responzivní webdesign pro vývojáře Internet Info, Praha
17+18/6 Ovládni front-end! Cowo Brno
24+25/6 Ovládni front-end! Hub Praha

Nebo si objednejte školení na míru.
Napište mi na martin@vzhurudolu.cz, nějak se domluvíme.