Hlavní navigace

Názor ke článku Proměnné v CSS. A není to chyba? od logik - Jsem pro zavedení konstant - a dokonce i...

  • 12. 8. 2008 18:40

    logik (neregistrovaný)

    Jsem pro zavedení konstant - a dokonce i aritmetiky s nimi. Ano, na servveru můžu (a používám) na generování skriptů PHP. Jenže to zbytečně zdržuje načítání stránky. A navíc mi to některý problémy nevyřeší. Jak v současnym CSS udělám, že
    okraj má bejt širokej 4em + 2px (v CSS3 to naštěstí půjde)? Už jsem několikrát narazil na to, že bych to potřeboval (např. na okraji je obrázek (velikost s pixelama) a chci od něj odsadit písmo o kus v proporcích dle velikosti znaků).

    Dokonce bych byl pro to (vim, je to už trochu extrém), přidat do css dědičnost. Prostě definovat, že tadle třída přebírá všechna nastavení jiné třídy. Jinak se mi v css množej hromady pravidel pro hromadu tříd, a vždy si musim pamatovat kam všude mam novou třídu dopsat. Příklad: mam seznam prvků, kde různý prvky maj různý třídy a trochu jinej vzhled (např. pozadí a barvu písma). Ten seznam vypisuju na x místech, pokaždý s trochu jinym stylopisem (jenou malý písmo, podruhý ....).
    Teď musim při přidání typu prvku definovat speciální vzhled prvku a navíc ho doplňovat ke stylopisu každýmu stylopisu seznamu. Kdyby byla dědičnost, tak řeknu - novej typ prvku se chová jako stejně prvek, ale je červenym písmem.

    Vim, někdy todle jde obejít použitím kaskády (např. ve výše uvedenym případu bych moh kaskádou definovat vlastnosti pro všechny prvky seznamu najednou), ale ve složitějším případě ne - např. pokud by ta moje "hierarchie tříd" měla víc než jednu úroveň.


    Ad to že má bejt css popisnej jazyk. Narozdíl od HTML už dávno popisnej není, ať se autoři snažej říkat co chtějí, na to je už moc složitej. Většina lidí ho vnímá jako šíleně osekanej programovací jazyk. Koneckonců , umožňuje generovat nový prvky a spoustu dalších věcí, který už prostě popisný nejsou. V současný době je to spíš hybrid.

    Navíc, narozdíl od HTML, kde má jednoduchost smysl pro automatický zpracování textům, vyhledávání atd., u CSS je tadle jednoduchost k ničemu. Další argument:
    co je a není popisnost? Např. výraz 2em + 2px je v podstatě totéž, jako věta na stole ležej dvě jabka a tři švestky. x=blue, stul { Color: var(x) }, zidle { Color: var(x) } je ekvivalent "stůl a židle mají stejnou barvu, a to modrou".
    To jsou IMHO naprosto popisné věty.

    A argumenty, že to jde dělat v externím jazyku? A proč pak vůbec existují překladače? Vždyť člověk může napsat program v assembleru. A nevyhovuje ti? Napiš si vlastní řešení, jak generovat asm kód, je potřeba, aby asm kód zůstal jednoduchej....

    Pokud prostě po nějaké vlastnosti volá většina webových vývojářů, tak asi bude užitečná. Lidem, pro něž byla "čistota návrhu" modlou, už se podařilo zabít XHTML 1.1 (užitěčnější návrh by se určitě už dávno používal...), a doteď IMHO vcelku brzdily rozvoj CSS správnym směrem (tzn. směrem, kdy bude ulehčovat vývojářům práci - důkazem toho je malá podpora CSS3 v prohlížečích, prohlížeče zpravidla nejdříve podporují pro vývojáře užitečné prvky).

    A že je to buřt, že se to nebude stejně implementovat? Uvidíte, že do dvou let hlavní browsery to implementujou. Jak jsem již zmínil, užitečný věci implementujou vývojáři prohlížešů relativně rychle (např. dom model, XMLHttpRequest apod.). Navíc je to vlastnost na implementaci naprosto jednoduchá. IMHO bude implementovaná daleko dřív než CSS3.