Hlavní navigace

CSS Frameworky jsou hovadina

27. 8. 2009 8:08 Tomáš Kapler

Na Zdrojáku vyšel druhý díl CSS Frameworků pro masy, který mě utvrdil v tom, že buď CSS frameworky vůbec nechápu a nebo jsou to naprostá zhůvěřilost. Nevím, možná jen nejsem jejich cílová skupina, prostě proto, že CSS umím, weby dělám nějakých 14 let, tehdy ještě CSS nebyly, takže se styly nějakých deset let.

Možná jsem divný, ale já chápu kaskádové styly jako prostředek, jak oddělit grafickou podobu stránek od kódu stránek, optimálně do té míry, aby kodér mohl být zcela oddělen od HTML šablon, ale vzhled by ovlivňoval jen přes CSS. Podle mého názoru k tomu byly CSS stvořeny, krásné příklady takového řešení najdete třeba na CSS Zen Garden.

Z hlediska optimalizace stránek pro vyhledavače AKA SEO, kterou se živím také už 10 let mně pak vyhovuje, že díky kaskádovým stylům mohu mít HTML šablonu optimalizovanou pro vyhledavače a pro nevidomé uživatele (tj. menu pohromadě, text na začátku atd.) a přes kaskádové styly si pak vše přeházím dle potřeby.

Za poslední 2 roky, kdy jsem se živil masovou tvorbou webů a měl jsem pod sebou asi 20 kodérů, se kterými jsme jich udělali přes 200 (zcela rozdílných), se tak vždy použila jedna šablona, kterou jsem navíc připravil v redakčním systému, takže kodér to jen vzal a běžný malý web mohl být hotov za hodinu až dvě, za čtyři když počítám i vkládání a úpravu textů.

No a teď zpátky k těm frameworkům. Když to zjednoduším, tak jejich podstata spočítá v tom, že si načtu nějaký generický styl, a potom když chci třeba mít nějaký text ve třech sloupcích po 33 %, tak dám divům třeba  class=„width33“, když chci aby něco bylo červeného, tak dám class=„red“ atd.

Proboha vždyť tohle je proti celé filosofii kaskádových stylů. Vždyť to pak můžu rovnou dělat tabulkový layout s td width=„33%“ nebo inline styly style=„color:red“? Co když pak chcete udělat redesign a těm sloupcům dát jinou šířku, jeden dát absolutně někam jinam atd., nebo se rozhodnote, že chcete jen tenhle horní a jeden dolní text co je teď „red“ udělat modrý? To v takto pitomých CSS frameworcích nezvládnete, musíte jít do HTML a tam měnit názvy tříd.

To mi připomíná jak kdysi někde někdo vysvětloval princip násobných tříd (tuším to byl dokonce Pixy), který si pochvaloval jak je úžasné, že můžu mít třeba třídu „bold“, třídu „italic“ a třídu „uppercase“ a když budu chtít tenhle důležitý text udělat tučnýma skloněnýma verzálkama, tak udělám class=„bold italic uppercase“. Ale co když se rozhodnu že tenhle důležitý text najednou nechci mít tučný? Opět musím zasáhnout do HTML.

Prostě moji kodéři si jako první věc museli vštípit do kebule, že do css názvů nepatří nic co definuje vzhled. Žádné class=„left“, žádné class=„cerveny“. Protože dříve či později budete chtít to co je teď vlevo dát doprava a to co je teď červené mít zelené a buď musíte procházet všechny HTML šablony a nahrazovat tyhle nesmysly, nebo skončíte s definicí .red {color:green}, která váš CSS kód učiní dokonale nepřehledným.

Prostě je-li něco důležitý text, tak napíšu class=„dulezity-text“, nebo ještě lépe to udělám jako <strong> či <em> (případně nejlépe kombinace <em class=„dulezity-text“>) a pak si s tím kdykoliv mohu dělat cokoliv a navíc hned z css vidím, co vlastně styluji a proč.

Možná mají v některých případech CSS frameworky smysl a práci ulehčí, ale než mrvit uvažování kodérů a než si zavírat vrátka pro budoucí snadné změny, a než načítat tuny balastního kódu, který nepotřebuji, tak se jim budu vždycky vyhýbat.

Sdílet

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).