LESS za efikasnije i pametnije CSS stilove
Upoznajte LESS koji će vam omogućiti da brže i pametnije pišete stilove nadograđujući izvorni CSS novim i korisnim osobinama.
CSS je veoma jednostavan jezik koji odlično obavlja posao za koji je zadužen, a to je formatiranje i definiranje izgleda dokumenata zasnovanih na markup jezicima, najčešće HTML i XHTML.
No istini za volju, neke stvari tokom pisanja CSS stilova su dosadne i ponavljajuće. Da li ste se ikada zapitali kako bi bilo dobro da izvorni CSS ima podršku za varijable i osnovne matematičke operacije koje bi skratile vrijeme pri pisanju i budućih nadogradnji CSS stilova?
Neko očigledno jeste, jer danas na raspolaganju imamo CSS pred-procesore koji nadograđuju izvorni CSS sa dodatnim osobinama i mogućnostima, a najčešće se radi o podršci za varijable, operacije, funkcije, te mixin koncept koji omogućava da hrpu atributa brzo i jednostavno pridružite različitim stilovima i klasama.
Dva najpoznatija CSS pred-procesora su LESS i Sass, a iz samog naslova teksta je jasno o kojem ćemo detaljnije pisati u nastavku.
Sass je od početka svog razvoja imao jednu manu, a ona se je ogledala u činjenici da sintaksa za pisanje stilova nije bila slična sintaksi izvornog CSS-a, što je u velikoj mjeri umanjilo njegovu popularnost i prihvaćanje od strane front-end developera. Alexis Sellier, koji se potpisuje kao autor LESS-a, je shvatio prvobitnu manu Sass-a, i razvio LESS koji je koristio CSS sintaksu koji su korisnici poznavali već od ranije. Od verzije 3, i sam Sass je ponudio podršku za CSS sintaksu.
Less.js – JavaScript implementacija
LESS-a LESS je originalno bio razvijen kao Ruby gem, ali zbog svoje popularnosti ubrzo su se pojavile i implementacije za PHP i .NET. Međutim, LESS je reimplementiran u JavaScriptu, što znači da bi koristili LESS nije vam potreban Ruby, PHP, .NET niti bilo koji drugi serverski orijentiran jezik, već isključivo preglednik, koji naravno, ima uključenu podršku za JavaScript.
Prije nego napišemo nešto više o Less.js kompajleru, pokazat ćemo kako ga podesiti i spremiti za radno okruženje, a to je jako jednostavno i radi se o dvije linije koje treba spremiti u okviru head tagova HTML dokumenta. Prva linija referencira do styles.less datoteke, a druga do Less.js kompajlera. Neophodno je da prvo uključite .less datoteku, pa tek onda Less.js kompajler.
<link rel="stylesheet/less" href="styles.less" type="text/css" /><script src="http://lesscss.googlecode.com/files/less-1.0.41.min.js"></script>U primjeru koji smo naveli smo koristili verziju Less.js kompajlera koja je dostupna na Google Code repozitoriju, a vi naravno možete preuzeti datoteku sa spomenutog repozitorija, ali i sa GitHuba i spremiti je na vlastiti server. Dovoljno je da ove dvije linije prekopirate u HTML dokument i već ste spremni za pisanje LESS kôda u styles.less datoteci.
Dakle, Less.js je JavaScript implementacija LESS-a koja omogućava da preglednik uživo procesira LESS kôd, tako da nije potrebno kompajliranje LESS kôda u CSS.
Kompajliranje i brzina izvršavanja
Neće li uživo procesiranje LESS kôda imati određene gubitke na brzini izvršavanja?
Ništa značajno, a prije svega zbog činjenice da je JavaScript implementacija LESS-a čak 40 do 50 puta brža od prvobitne Ruby implementacije, te da moderni preglednici koji podržavaju HTML5 neće nanovo procesirati LESS kôd, već će generisani CSS kôd sačuvati u cacheu.
Naravno, ukoliko u pregledniku nije uključena podrška za JavaScript, praktično će značiti da će web aplikacija biti ogoljena za CSS formatiranje, što se i ne može smatrati ozbiljnim nedostatkom ako uzmemo u obzir da većina današnjih web aplikacija je zasnovana velikim dijelom na JavaScriptu i da većina korisnika ima uključen JavaScript u svom pregledniku.
Ukoliko je priroda web aplikacije takva da je neophodno da je CSS podržan u svakom slučaju, onda se možete osloniti na serversku implementaciju LESS-a ili na ideju koju iznosimo u nastavku. Čak, ako vam se ne sviđa ideja o kompajliranju LESS kôda u CSS, kao što se ne sviđa vašem autoru, onda je najbolji savjet da preglednicima servirate generisanu CSS datoteku.
Ipak, preporuka je da Less.js implementaciju koristite tokom faze razvoja, jer bi bilo kontraproduktivno da za svaku izmjenu morate kompajlirati LESS. Na ovaj način ne morate razmišljati o podršci za JavaScript i brzini procesiranja LESS kôda.
Upotreba LESS-a kroz primjere
LESS nije zamjena za CSS. Radi o nadogradnji istog nekim zgodnim funkcionalnostima, a to istovremeno znači da je CSS, uključujući i CSS3, u potpunosti podržan.
Varijable se definiraju prema pravilu @naziv: vrijednost, što znači da svaka varijabla počinje sa znakom "@" i ima naziv, te dodijeljenu vrijednost. Naravno, naziv varijable je case-sensitive, a ako pokušate koristiti varijablu koju prethodno niste definirali, kompajler će vas uredno upozoriti na to.

Jako korisna i vjerovatno najupotrebljivija mogućnost LESS-a je mixin koncept koji vam omogućava da ugradite sve atribute jedne klase u drugu klasu navodeći samo naziv mixina kao jedan od atributa klase. Mixins se mogu ponašati kao funkcije što znači da mogu primati parametre, čija vrijednost može biti unaprijed definirana, kao što se može vidjeti u primjeru koji slijedi.


Operacije sabiranja, oduzimanja, množenja i dijeljenja se mogu primijeniti na bilo koji broj, boju ili varijablu. Primjeri će najbolje pokazati primjenu operatora.


Sa ciljem da se postigne bolja i preglednija struktura CSS dokumenta, LESS uvodi podršku za ugniježđavanje stilova.

Ukoliko .less datoteku otvorite u editorima, poput Adobe Dreamweavera ili Notepad++, izgubit ćete podršku za automatsko dopunjavanje i obojenu sintaksu prilikom pisanja CSS stilova. Srećom, to je moguće riješiti. Da bi uključili podršku u Dreamweaveru otvorite datoteku MMDocumentTypes.xml koju možete pronaći na putanji [Putanja_do_DW]AppDreamweaverCS4configurationDocumentTypes i pretražite datoteku za string id="CSS", te u listu winfileextension dodajte i vrijednost less.


Zaključak
Nekima se koncept LESS-a, tačnije CSS pred-procesora nije dopao, pokušavajući skrenuti pažnju na to da isti pokušavaju popraviti stvar koja nije pokvarena. Neki su LESS nazvali CSS-om na anaboličkim steroidima (što se može shvatiti dvosmisleno), ali pokušajte razmišljati o njemu kao alatu koji vam omogućava da brže obavljate svoj posao.
Ako sa njim zaista brže pišete CSS stilove, i u konačnici pregledniku servirate finalnu CSS datoteku, onda u tome ne bi trebalo biti ništa neprirodno i što bi moglo imati posljedice. Naravno, LESS nije jedini CSS pred-procesor. Izdvojite vremena i dajte šansu i ostalim.







Komentari (0)