Kurs HTML i CSS · Moduł 7: SASS
Mixiny w Sass
W tej lekcji4
Mixiny w Sass pozwalają na definiowanie stylów, które mogą być ponownie używane w całym arkuszu stylów bez konieczności powtarzania kodu. Mixiny są szczególnie przydatne, gdy potrzebujesz używać tych samych deklaracji CSS w wielu miejscach.
Definiowanie mixina
Aby zdefiniować mixin, użyj dyrektywy @mixin, a następnie podaj nazwę mixina. Na przykład:
1@mixin reset-list {
2 margin: 0;
3 padding: 0;
4 list-style: none;
5}Używanie mixina
Aby użyć mixina, użyj dyrektywy @include, a następnie podaj nazwę mixina. Na przykład:
1ul, ol {
2 @include reset-list;
3}Po skompilowaniu powyższy kod do CSS, otrzymamy:
1ul, ol {
2 margin: 0;
3 padding: 0;
4 list-style: none;
5}Mixiny z argumentami
Mixiny w Sass mogą także przyjmować argumenty, co czyni je jeszcze bardziej elastycznymi. Przykładowo, możemy stworzyć mixin, który generuje style dla przycisków o różnych kolorach:
1@mixin button-color($color) {
2 background-color: $color;
3 color: white;
4 &:hover {
5 background-color: darken($color, 10%);
6 }
7}
8
9.button-primary {
10 @include button-color(blue);
11}
12
13.button-danger {
14 @include button-color(red);
15}Po skompilowaniu do CSS otrzymamy:
1.button-primary {
2 background-color: blue;
3 color: white;
4}
5.button-primary:hover {
6 background-color: darkblue;
7}
8
9.button-danger {
10 background-color: red;
11 color: white;
12}
13.button-danger:hover {
14 background-color: darkred;
15}Jak widać, mixiny są bardzo potężnym narzędziem w Sass, które pozwala na znaczne uproszczenie kodu i zwiększenie jego reużywalności. Pamiętaj jednak, aby używać ich z umiarem, aby uniknąć niepotrzebnego komplikowania kodu.
Zadanie: Tworzenie i Używanie Mixinów w Projekcie Sass
Cele Zadania
- Stworzenie mixinów dla resetowania list, tworzenia przycisków oraz ustawienia layoutu.
- Zastosowanie stworzonych mixinów w różnych elementach strony.
- Refaktoryzacja istniejącego kodu CSS za pomocą mixinów.
Krok 1: Struktura Plików
Utwórz następującą strukturę plików dla projektu:
1project/
2|-- scss/
3| |-- _mixins.scss
4| |-- main.scss
5|-- css/
6| |-- main.css
7|-- index.htmlKrok 2: Definiowanie Mixinów
1. Resetowanie List
W pliku _mixins.scss zdefiniuj mixin reset-list, który resetuje styl list:
1// _mixins.scss
2@mixin reset-list {
3 margin: 0;
4 padding: 0;
5 list-style: none;
6}2. Tworzenie Przyciski
Dodaj mixin button-style, który pozwoli na tworzenie przycisków o różnych kolorach:
1// _mixins.scss
2@mixin button-style($color) {
3 background-color: $color;
4 color: white;
5 padding: 10px 20px;
6 border: none;
7 border-radius: 5px;
8 cursor: pointer;
9 &:hover {
10 background-color: darken($color, 10%);
11 }
12}3. Layout
Dodaj mixin center-flex, który ustawi elementy we flexboxie na środku:
1// _mixins.scss
2@mixin center-flex {
3 display: flex;
4 justify-content: center;
5 align-items: center;
6}Krok 3: Używanie Mixinów
W pliku main.scss zaimportuj mixiny i użyj ich do stylizacji elementów:
1// main.scss
2@use 'mixins';
3
4ul, ol {
5 @include mixins.reset-list;
6}
7
8.button-primary {
9 @include mixins.button-style(blue);
10}
11
12.button-danger {
13 @include mixins.button-style(red);
14}
15
16.container {
17 @include mixins.center-flex;
18 height: 100vh;
19}Krok 4: HTML
Utwórz plik index.html i dodaj do niego następującą strukturę:
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Projekt Sass</title>
7 <link rel="stylesheet" href="css/main.css">
8</head>
9<body>
10 <div class="container">
11 <ul>
12 <li>Element 1</li>
13 <li>Element 2</li>
14 <li>Element 3</li>
15 </ul>
16 <button class="button-primary">Przycisk Primary</button>
17 <button class="button-danger">Przycisk Danger</button>
18 </div>
19</body>
20</html>Krok 5: Kompilacja Sass
Użyj narzędzia do kompilacji Sass (np. node-sass, Dart Sass, czy preprocesora w edytorze) do wygenerowania pliku CSS (main.css) z pliku Sass (main.scss).
Zadanie
- Dodanie Nowych Mixinów: Stwórz mixin box-shadow, który dodaje cień do elementu, i zastosuj go do przycisków.
- Użycie Mixina z Argumentami: Stwórz mixin, który ustawia marginesy z argumentami dla górnego, prawego, dolnego i lewego marginesu, i zastosuj go do listy.
- Rozbudowa Layoutu: Stwórz mixin layout-grid, który ustawia elementy w układzie grid, i zastosuj go do kontenera.
- Optymalizacja Kodów: Przeanalizuj kod i użyj mixinów, aby uczynić go bardziej modularnym i łatwiejszym do utrzymania.
Zadanie to pomoże Ci zrozumieć, jak definiować i używać mixinów w Sass, co prowadzi do bardziej zorganizowanego i efektywnego kodu CSS.
Kod do tej lekcji: index.html
1<!DOCTYPE html>
2<html lang="pl">
3<head><title>Pola tekstowe</title></head>
4<body style="background:#d4a574;font-family:serif;padding:20px;color:#3d2914">
5<h1>Pola Tekstowe</h1>
6<p>Input type=text - jak papirus do pisania.</p>
7</body>
8</html>Widzisz błąd w tej lekcji?
Sprawdź się
Odpowiedz na pytania z tej lekcji. Wybierz odpowiedź, a od razu zobaczysz, czy jest poprawna.
1. Jak definiuje się mixin w SASS?
2. Jak użyć mixina w SASS?
Zadania praktyczne w grze
- Edytor kodu
Stwórz @mixin flex-center { display: flex; justify-content: center; align-items: center }. Użyj: .card { @include flex-center; }, .hero { @include flex-center; height: 100vh }. Dodaj @mixin shadow($size) z parametrem!
- Klikanie w kolejności
Zbuduj deklarację mixina SASS z parametrem:
- Edytor kodu
Stwórz @mixin button-style($bg, $color) { background: $bg; color: $color; padding: 10px 20px; border: none; border-radius: 5px; }. Użyj: .btn-primary { @include button-style(#2C3E50, white); }, .btn-secondary { @include button-style(#D4AF37, black); }. Dodaj parametr $radius z wartością domyślną!
- Układanie w pionie
Ułóż proces tworzenia mixina: