13 dobrych praktyk, które sprawią, że Twój kod CSS stanie się lepszy!

Ostatnio Bartłomiej Mąkina z bloga Devcorner.pl stworzył artykuł, w którym wymienia 7 złych praktyk podczas pisania kodu CSS. Zainspirowało mnie to do stworzenia swojego wpisu, w którym przedstawiam przeciwieństwo, czyli dobre praktyki :)

Dowiemy się dziś dlaczego w ogóle warto zwracać uwagę na poprawność naszego kodu CSS oraz poznamy dokładnie 13 sposobów na zwiększenie jego jakości.

Dlaczego warto stosować dobre praktyki w przypadku kodu CSS?

Korzystanie z dobrych praktyk ma szereg zalet. Przede wszystkim nasza witryna działa szybciej i wydajniej. Zawartość nie ma problemów z ustawianiem się na stronie, a przejrzysty oraz ułożony kod jest łatwiejszy do odczytania przez nas, jak i inne osoby, na przykład współpracowników.

Dobre praktyki:

1. Normalizacja stylów przeglądarki

Zacznę od sposobu, o którym sam dowiedziałem się na późnym etapie nauki. Każda przeglądarka posiada własne, domyślne style, które potrafią przysporzyć sporej ilości problemów podczas tworzenia strony internetowej.

Właśnie to często jest powodem sytuacji, w której tworzymy witrynę i przykładowo na Chromie wygląda dobrze, po czym sprawdzamy ją na Firefoxie, gdzie jest zupełnie inna. Na szczęście możemy tego bardzo prosto uniknąć. Wystarczy dodać do naszych stylów kod z tej oto strony: Normalize.css.

Warto wspomnieć, że oprócz normalizacji istnieje coś takiego jak zupełny reset stylów przeglądarki. Aby go zastosować, wystarczy dodać kod z tej strony na początku naszego arkusza stylów.

2. Używanie box-sizing: border-box

Domyślną wartością dla box-sizing jest content-box, ale niestety ta opcja sprawia wiele problemów. Postaram się wytłumaczyć dlaczego, na przykładzie kodu:

.div1 {
  box-sizing: content-box;
  width: 100px;
  height: 100px;
  padding: 10px;
  border: 5px;
}

W tym przypadku div ma 100px, ale osobno zostaje do niego dodany padding i border, które w praktyce sprawiają, że całość ma 130px.

.div2 {
  box-sizing: border-box;
  width: 100px;
  height: 100px;
  padding: 10px;
  border: 5px;
}

Tu już jest zupełnie inaczej. Całość ma 100px, a padding oraz border odejmują się od wymiarów diva, przez co ten ma w praktyce 70px szerokości i wysokości.

Warto zaznaczyć, że najczęściej box-sizing: border-box implementuje się w ten oto sposób:

html {
  box-sizing: border-box;
}

*,
::before,
::after {
  box-sizing: inherit;
}

Jest to najlepsza praktyka, która rozwiązuje wszystkie problemy :)

Zmiana tej wartości daje nam większą kontrolę nad układem strony i sprawia, że całość się nie rozjeżdża.

3. Łączenie stylów dla wielu elementów

Możemy nadać takie same style dla więcej niż jednego fragmentu naszej strony. Dla przykładu chcąc ustawić kolor czcionki na ciemnogranatowy, dla nagłówków h1 do h3 nie użyjemy takiego kodu:

h1 {
  color: #10131a;
}

h2 {
  color: #10131a;
}

h3 {
  color: #10131a;
}

...a taki:

h1,
h2,
h3 {
  color: #10131a;
}

Nasz kod stanie się bardziej przyjazny dla ludzi, jak i przeglądarek.

4. Używanie zapisu szesnastkowego lub RGB

Kolory dobrze jest pisać w jednej z tych dwóch postaci. Przykładowo nie używać takiego zapisu:

h1 {
  color: black;
}

...a taki:

h1 {
  color: #000000;
}

Dzięki temu nasz kod będzie trzymał się jednego standardu oraz stanie się przyjemniejszy w interpretacji.

5. Łączenie kodu w jedną linię

Co rozumiem przez to zdanie? Gdy mamy element, któremu trzeba nadać różny margines z każdej ze stron nie używajmy takiego kodu:

div {
  margin-top: 10px;
  margin-right: 5px;
  margin-bottom: 20px;
  margin-left: 15px;
}

...a taki:

div {
  margin: 10px 5px 20px 15px;
}

Z kolei gdy ten margines jest taki sam od góry i dołu, a inny po bokach, to ponownie nie piszmy tego w ten sposób:

div {
  margin-top: 10px;
  margin-right: 5px;
  margin-bottom: 10px;
  margin-left: 5px;
}

...a w ten:

div {
  margin: 10px 5px;
}

Dzięki temu nasz kod będzie krótszy i szybciej ładowany przez przeglądarki.

6. Organizacja kodu

Ważne jest aby nasz kod był ułożony w taki sposób, jak wygląda budowa strony. Przykładowo nasze style mogą być zorganizowane wg. takiej oto hierarchii:

/* Reset stylów przeglądarki */
/* Style ogólne */
/* Czcionki i ułożenie elementów na stronie */
/* Nagłówek */
/* Główna zawartość witryny */
/* Stopka */
/* Media Queries */

Dodatkowo cały kod powinien posiadać komentarze odgradzające poszczególne sekcje i elementy stron.

Wszystkie te dobre praktyki sprawią, że kod będzie bardziej przejrzysty i prostszy do odczytania przez nas, jak i przeglądarki internetowe.

7. Nieużywanie deklaracji !important

Ta zła praktyka jest bardzo często poruszana, z racji tego, że jej działanie jest tragiczne w skutkach. Za jej pomocą zupełnie zaburza się hierarchię kodu CSS oraz znacznie utrudnia późniejszą edycję.

8. Używanie text-transform, zamiast caps locka

Jeśli dane zdanie w całości ma być napisane z wielkich liter, to dobrze jest nie robić tego w ten oto sposób:

<p class="distinction">ZDANIE Z WIELKICH LITER</p>

...a w ten:

.distinction {
  text-transform: uppercase;
}

Wszystko z powodu dostępności. Gdy użytkownik, przeglądający naszą stronę, korzysta z czytnika ekranowego, zdanie zapisane wielkimi literami, będzie czytane na zasadzie "Z D A N I E" - z wyraźnymi przerwami między każdą literką.

Taki sposób czytania, nie będzie przystępny dla użytkownika, a sam tekst stanie się przez to bardzo trudny w zrozumieniu.

9. Dodawanie animacji na końcu

Wszelkie animacje widoczne na stronie, szczególnie biblioteki, takie jak np. Animate.css powinny być dodane na końcu po to, aby właściwa treść mogła pojawiać się przed nimi.

Dzięki temu witryna będzie ładować najpierw właściwą treść, a dopiero później wszelkie dodatki.

10. Niepowtarzanie tego samego kodu

Jeśli na przykład posiadamy ciemne tło i białą czcionkę dla wielu elementów na stronie, to nie przypisujmy tego dla każdego elementu. Lepiej zróbmy to na przykład w ten sposób:

.html {
  background-color: #333333;
  color: #ffffff;
}

Oczywiście nie wszystkie style są dziedziczone (np. margines). W tym miejscu możecie znaleźć listę wszystkich elementów, które działają w ten sposób.

11. Posiadanie jednego pliku CSS

Gdy nie korzystamy z bundlera, ani żadnego innego narzędzia, które usprawnia naszą pracę z kodem, dobrze jest połączyć cały kod CSS w jeden plik w przypadku mniejszych stron, po to aby ograniczyć ilość zapytań, które znacznie spowalniają ładowanie się strony.

Aktualizacja na dzień 05.12.2021: Przez to, jak popularny jest już HTTP/2 łączenie plików CSS (jak i aplikuje się to również dla JavaScriptu) w jeden wielki plik, nie ma już takiej wartości. Często lepiej jest przeciwnie - podzielić nasze style na kilka mniejszych plików, ładowanych tylko dla konkretnych widoków.

12. Utrzymywanie kodu CSS poza plikiem HTML

W sumie po to aby oddzielić treść strony od jej wyglądu, zostały stworzone kaskadowe arkusze stylów! Całość szczególnie dotyczy stylowania in-line, które jest bardzo dużym błędem i wygląda w ten sposób:

<h1 style="color: #10131a"></h1>

13. Minifikacja kodu

Zabieg ten polega na usuwaniu wszystkich znaków białych z naszego kodu. Często też rozwiązuje problem powtórzeń. W tym celu istnieje mnóstwo narzędzi, takich jak CSS Minifer oraz CSS Compressor i proces ten zapewniają wszelkie bundlery (np. Webpack, czy RollUp).

Dzięki temu nasza strona waży mniej i ładuje się szybciej.

Interesujesz się front-endem lub programowaniem ogólnie?

Słowo podsumowania

W tym artykule wypisałem dobre praktyki, które warto stosować podczas pisania kodu CSS. Mam nadzieję, że niektóre okażą się dla Ciebie pomocne i pomogą w tworzeniu jak najlepszych stron internetowych :)

Mogą Cię zainteresować:

Chętnie zaproponuję Ci coś jeszcze

Czy chcesz dodać coś od siebie?