autor: Robert
Zmienne w LESS nie muszą być deklarowane przed ich użyciem, możemy zrobić to później a kompilator i tak sobie poradzi. Co nie zmienia faktu, że lepiej inicjować zmienne przed ich użyciem, dzięki czemu unikniemy bałaganu w kodzie.
1 2 3 4 5 6 |
.lazy-eval { width: @var; } @var: @a; @a: 9%; |
Jak widzicie w powyższym przykładzie najpierw odwołujemy się do zmiennej @var
. Następnie inicjujemy zmienną @var
wartością zmiennej @a
a dopiero na koniec tworzymy zmienną @a
i nadajemy jej wartość.
W przypadku zagnieżdżeń, jak pewnie pamiętacie z wpisu zasięgu zmiennych pod uwagę jest brana najpierw zmienna lokalna a później globalna. Jeśli wewnątrz zagnieżdżenia dwa razy nadajemy zmiennej wartość to brana jest jej ostatnia wartość.
1 2 3 4 5 6 7 8 9 10 |
@var: 0; .class { @var: 1; .brass { @var: 2; three: @var; @var: 3; } one: @var; } |
Skompiluje się nam do:
1 2 3 4 5 6 |
.class { one: 1; } .class .brass { three: 3; } |
Jak widzicie właściwość one
otrzymała wartość „1” bo tyle wynosi wartość zmiennej @var
wewnątrz selektora. Właściwość wewnątrz selektora brass
otrzymała wartość „3” bo wewnątrz tego zagnieżdżenia ostatnie wystąpienie zmiennej @var
ma właśnie taką wartość.