{less} is more
Προγραμματιστική λογική σε css;
Γιατί όχι; Πόσες φορές αλήθεια δεν ψάξατε μέσα σε ένα τεράστιο .css αρχείο για να βρείτε το χρώμα #3357FF και μετά κάνατε search and replace στον text editor για να το αντικαταστήσετε παντού; Πολλές; Ωραία, τότε συνεχίστε να διαβάζετε, γιατί με την less μπορούμε να έχουμε μεταβλητές, mixins (functions), operations (πράξεις) και nested rules όταν γράφουμε css. Ισχύουν όλοι οι συντακτικοί κανόνες που ξέρουμε για τα css και απλά προστίθενται μερικές ευκολίες προγραμματιστικής λογικής.
Μεταβλητές
Στο παραπάνω παράδειγμα αρκεί να έχουμε στην αρχή ενός .less αρχείου ορίσει μία μεταβλητή ως εξής:
@dark_color: #3357FF;
και μετά να το χρησιμοποιήσουμε όσες φορές θέλουμε π.χ.
div.important { border: 5px solid @dark_color; }
div.emphasis { color: @light_color; background: @dark_color; }
Mixins (functions)
Ορίζουμε ένα mixin ως κλάση (που όπως βλέπετε μπορεί να δέχεται και μεταβλητές)...
.rounded_corners (@radius: 5px) { -moz-border-radius: @radius; -webkit-border-radius: @radius; border-radius: @radius; }
και μετά το χρησιμοποιούμε πολύ απλά ως rule σε κάποιο άλλο αντικείμενο.
div.emphasis { color: @light_color; background: @dark_color; .rounded_corners(15px); }
Nested rules
Μπορούμε να γράψουμε...
div.emphasis { color: @light_color; background: @dark_color; a { font-weight: bold; } }
Αντί για...
div.emphasis { color: @light_color; background: @dark_color; } div.emphasis a{ font-weight: bold; }
Πείστηκα! Τί χρειάζομαι;
Έναν text editor για να σώνετε τα αρχεία σας σε .less και να χρησιμοποιείτε στο project σας ruby, php... ή javascript!
Ruby: http://lesscss.org/
PHP: http://leafo.net/lessphp/
Javascript: http://github.com/cloudhead/less.js
Και ένα σύντομο tutorial για τη less.js εδώ: http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-you-need-to-check-out-less-js/
Εν ολίγοις, τα .less αρχεία, θα πρέπει τελικά να μεταφραστούν σε καθαρό css κώδικα με μία από τις παραπάνω γλώσσες, είτε "on the fly" είτε "offline" πριν ανεβάσετε τα τελικά .css αρχεία στον server σας. Για όσους ανησυχούν για το overhead που μπορεί να υπάρχει στον σέρβερ "μεταφράζοντας" κάθε φορά τα .less αρχεία όταν φορτώνει μία σελίδα, υπάρχουν λύσεις. Για παράδειγμα αν χρησιμοποιείτε PHP μπορείτε με αυτό το scriptaki να δημιουργείτε χειροκίνητα τα .css αρχεία πριν τα ανεβάσετε. Απλά βάλτε το στο φάκελο με τα .less αρχεία μαζί με το less.inc.php και καλέστε το από το localhost.
Για ό,τι άλλο χρειαστείτε, εδώ είμαστε...
Διαβάστηκαν περισσότερο σήμερα
-
01/07/201071 σχόλια
-
12/11/200912 σχόλια
-
01/04/20109 σχόλια
-
07/01/20104 σχόλια
-
11/03/20105 σχόλια
-
23/01/20100 σχόλια
-
16/03/20100 σχόλια

Πάρα πολύ βολικό φαίνεται αυτό. Είδα ότι υπάρχει και αντίστοιχο module για drupal. http://drupal.org/project/less
Να προσθέσω ότι η js έκδοση του script είναι πολύ γρηγορότερη από το ruby και το php parser.
Όντως έτσι λένε για τη javascript έκδοση αλλά εμένα μου έβγαζε error σε compatibility mode στον ΙΕ8, που σημαίνει ότι μάλλον δεν θα δουλεύει σε IE6 αλλά και IE7. Γι' αυτό προσοχή με τη javascript έκδοση όσο είναι ακόμα σε beta...
Μόλις βγήκε και mac app http://incident57.com/less/
Παρατηρεί τα less αρχεία κάθε 4-5 δεπτερόλεπτα πχ και φτιάχνει το αντίστοιχο css
Το έχω χρησιμοποιήσει σε 1-2 rails projects και μου άρεσε πολύ γιατί μειώνει το verbosity και φυσικά να έχω όλα μου τα χρώματα σαν global μεταβλητές είναι killer
Ήδη το χρησιμοποιώ σήμερα σε ένα νέο project και το βρίσκω καταπληκτικό!!
πολύ καλή φάση. thanks for sharing.
Δουλέυει και σε asp.net.
http://www.dotlesscss.com/
Χθες έπεσα πάνω σε αυτό (τελευταία παράγραφος):
http://fadeyev.net/2010/06/19/lessjs-will-obsolete-css/
H Less.js σου δίνει την δυνατότητα να κάνεις auto-refresh την CSS και μόνο τμηματικά.
Αρκετά χρήσιμο όταν δουλεύεις την εμφάνιση σελίδας με POST request και γενικά δυναμικά sites.
Δεν κατάφερα να κάνω το watch() να δουλέψει σε Notepad++ και Win7, ας μας πει κάποιος αν το έχει δοκιμάσει.
Και απαντάω ο ίδιος, δουλεύει μόνο όταν βλέπεις την σελίδα από το path ("file:///") και όχι μέσω localhost.
2 πράγματα μου την σπάνε αυτή τη στιγμή. Όταν λειτουργώ με το firebug δεν παίζει καλά το line number και δεν εμφανίζει τα άδεια class, με αποτέλεσμα να είναι ολίγον δύσχρηστο.
Χρησιμοποιείς την js έκδοση? Μήπως θα ήταν προτιμότερη μια από τις server side λύσεις;
Χρησιμοποιώ την php!
Πες μας την βασιλική σου γνώμη