Istnieje wiele uznanych metod formatowania CSS. Ostatecznie od Ciebie zależy, co czujesz najbardziej komfortowo podczas pisania, ale pomogą one zarządzać CSS w przypadku większych, bardziej skomplikowanych projektów. Nie żeby to miało znaczenia, ale zazwyczaj używam kombinacji BEM i SMACSS.
BEM to bardzo przydatna, potężna i prosta konwencja nazewnictwa, która sprawia, że Twój kod frontonu jest łatwiejszy do odczytania i zrozumienia, łatwiejszy w obsłudze, łatwiejszy do skalowania, bardziej niezawodny i wyraźny oraz o wiele bardziej rygorystyczny.
Blok
Samodzielna jednostka, która sama w sobie ma znaczenie, na przykład:
header, container, menu, checkbox, input
Element
Części bloku i nie mają samodzielnego znaczenia. Są semantycznie powiązane z jego blokiem:
menu item, list item, checkbox caption, header title
Modyfikator
Flagi na blokach lub elementach. Użyj ich, aby zmienić wygląd lub zachowanie:
disabled, highlighted, checked, fixed, size big, color yellow
Celem OOCSS jest zachęcanie do ponownego wykorzystania kodu, a ostatecznie szybszych i bardziej wydajnych arkuszy stylów, które są łatwiejsze do dodania i utrzymania.
OOCSS opiera się na dwóch głównych zasadach:
- Oddzielenie struktury od skóry
Oznacza to zdefiniowanie powtarzających się funkcji wizualnych (takich jak style tła i obramowania) jako oddzielnych „karnacji”, które można łączyć i dopasowywać z różnymi obiektami, aby uzyskać dużą różnorodność wizualną bez dużej ilości kodu. Zobacz obiekt modułu i jego skórki.
- Oddzielanie pojemników i zawartości
Zasadniczo oznacza to „rzadko używaj stylów zależnych od lokalizacji”. Obiekt powinien wyglądać tak samo bez względu na to, gdzie go umieścisz. Więc zamiast stylizować konkretny obiekt za pomocą .myObject h2 {...}, utwórz i zastosuj klasę, która opisuje dane pytanie, na przykład. Daje to pewność, że: (1) wszystkie niesklasyfikowane elementy będą wyglądać tak samo; (2) wszystkie elementy z klasą kategorii (zwane mixinem) będą wyglądać tak samo; i 3) nie będziesz musiał tworzyć stylu nadpisania dla przypadku, gdy faktycznie chcesz, aby .myObject h2 wyglądał jak normalny.
SMACSS to sposób na zbadanie procesu projektowania i dopasowanie tych sztywnych ram do elastycznego procesu myślowego. Jest to próba udokumentowania spójnego podejścia do tworzenia serwisu przy użyciu CSS.
U podstaw SMACSS leży kategoryzacja. Kategoryzując reguły CSS, zaczynamy dostrzegać wzorce i możemy zdefiniować lepsze praktyki dotyczące każdego z tych wzorców.
Istnieje pięć typów kategorii:
Baza
Zawiera zresetowane i domyślne style elementów. Może również mieć podstawowe style dla elementów sterujących, takich jak przyciski, siatki itp., Które można nadpisać w dalszej części dokumentu w określonych okolicznościach.
Układ
będzie zawierał całą nawigację, menu nawigacyjne, mapy witryn itp.
Moduły
zawierają style specyficzne dla obszaru, takie jak style formularzy kontaktowych, kafelki strony głównej, lista produktów itp. Itp.
State
Zawiera klasy stanu, takie jak isSelected, isActive, hasError, wasSuccessful itp.
Motyw
Zawiera wszelkie style związane z motywami.
Jest ich zbyt wiele, by je szczegółowo opisać, ale spójrz też na te inne: