Rozszerzanie klas
Oprócz zagnieżdżania i mixinów istnieje jeszcze jeden sposób na poprawienie czytelności kodu. Nie jest on tak popularny jak dwa przedstawione poprzednio, ale warto o nim wspomnieć. W SASS istnieje pojęcie rozszerzania klas. Zobacz na czym ono polega.
Podstawy
Technika ta polega na definiowaniu podstawowej klasy dla danego elementu, aby później rozszerzyć ją w przypadku innego stanu. Dla przykładu:
| 123456789 | .error{border:1px#f00;background-color:#fdd;}.bad-error{@extend.error;border-width:3px;} |
|---|---|
Powyższy kod zostanie skompilowany do:
| 12345678 | .error,.bad-error{border:1px#f00;background-color:#fdd;}.bad-error{border-width:3px;} |
|---|---|
Dokładnie taki sam rezultat możemy osiągnąć poprzez zagnieżdżanie styli i użycie operatora rodzica&w ten sposób:
| 12345678 | .error{border:1px#f00;background-color:#fdd;&.bad-error{border-width:3px;}} |
|---|---|
Bardziej przydatne zastosowanie @extends
Jednak istnieją przypadki w których zasadne jest użycie słowa kluczowego@extends. Wyobraź sobie, że masz kilka klas dla różnych elementówa. Dzięki rozszerzeniu klas, możesz dla wszystkicha:hoverustawić efekt po najechaniu kursorem myszy na link. Przykład:
| 1 2 3 4 5 6 7 8 910111213 | a.link-1{color:#f00;@extenda:hover;}a.link-2{color:#f0f;@extenda:hover;}a:hover{text-decoration:underline;} |
|---|---|
Oczywiście ten sam efekt możesz uzyskać w inny sposób, rozszerzanie klas jest jedną z opcji.
Zadanie 1
W ciele dokumentu HTML znajdują się dwa elementy.circle. Jeden z elementów posiada także klasęcircle-blue, ale ona nie posiada w zapisie niebieskiego koloru tła. W kodzie SCSS istnieje natomiast klasablue, w której istnieje poprawny zapis koloru tła. Twoim zadaniem jest rozszerzenie klasycircle-blueo klasęblue.

Podsumowanie
W tej krótkiej lekcji dowiedziałeś się czym jest rozszerzanie klas i kiedy warto je stosować. Poznałeś również inną wersję zapisu wykorzystującą zagnieżdżanie klas. Zapraszam Cię do następnej lekcji w której poznasz operacje warunkowe i pętle