October 26, 2009 3

Object oriented CSS

By Razvan Pavel in front end development

Am descoperit recent prezentarea unei domnisoare de la Yahoo! despre object oriented CSS, un subiect destul de vehiculat printre cei care nu fac site-uri de 5 pagini, blog-uri sau altele de genul, vorbesc aici de aplicatii web, e-commerce-uri, portal-uri ale caror fisiere CSS sar de 4000 de linii (scrise inline) si care trebuie sa mearga pe orice enviroment (de la Firefox pana la Internet Explorer 5.5, iPhone, Simbian sau orice alt browser pe orice sistem de operare).

Problema este ca desi se lucreaza mult la optimizari de tot felul (sprite-uri, o clasa pentru x tip-uri de elemente si asa mai departe) CSS-ul nu permite nativ (in momentul de fata cel putin) multe niciunul din priciipile de OOP, gagica da un exemplu foarte simplu si foarte la obiect despre acest lucuru:

.someClass { nebunii: sf-uri;}
.anotherClass { extend: someClass; }

Lucru care mie cel putin mi-ar revolutiona felul in care lucrez, si care ar reduce semnificativ dimensiunea fisierelor, numarul de clase si ID-uri folosite.

Cum putem scrie OOPCSS? Foarte simplu: organizand si lucrand cu clase cat mai generale care sa targeteze niste tipuri de module stanard (in functie de necesitatile proiectului evident) pe care putem sa le folosim in orice pagina dinamica, sau statica, fara sa crape layout-ul, sau sa nu mai fie standard based. Mai mult de atat, sa fie simplu de modificat sau adaugat orice, oriunde.

Cum prin XHTML, si mai ales prin XHTML Strict se doreste separarea structurii de prezentarea si de comportamentul unui document aici se doreste tot ceva de genul: separarea structurii layout-ului de design si separarea structurii containerelor de contentul acestora.

Pentru o idee generala despre cum sta treaba va recomand sa da-ti un download aici pentru mai multe exemple si o descriere mai detaliata.

Tags: , , , , ,

3 Responses to “Object oriented CSS”

  1. OriginalCopy says:

    Exista ceva mostenire, insa nu direct prin intermediul CSS, ci prin natura arborescenta a DOM-ului. Deci daca mark-up-ul este structurat cum trebuie nu ar trebui sa fie necesara mostenirea in CSS.

  2. Incearca sass – http://sass-lang.com/
    Poate chiar iti va revolutiona modul de lucru: variabile, mostenire, mixinuri (gen ruby), etc…
    Eventual si compass – http://compass-style.org/

    Vei avea nevoie de Ruby, dar asta nu ar trebui sa fie o problema

  3. campuscodi says:

    Nu e orientat obiect nativ.
    Ceea ce descrie ea acolo e pura: organizare a claselor CSS facuta cum trebuie.

    Orice web developer cu o vechime mai mare de 1 an si/sau 10 website-uri la activ va face acelasi lucru.

    Orice om intreb la minte care lucreaza in implementari template-uri are propriul sistem sau framework de CSS.

Leave a Reply