Metodyka OOCSS (Object Oriented CSS) - dla stron internetowych
Dzisiaj po raz kolejny zajmę się metodykami/konwencjami CSS. Do tej pory omówiłam już konwersję BEM jeśli macie ochotę możecie o niej poczytać tutaj. Dzisiaj przejdę do kolejnej a więc OOCSS. Warto pamiętać, że metodyka podobnie jak inne ma również wpływ na strukturę kodową strony (np. HTML)
OOCSS to skrót od Angielskiego wyrażenia Object Oriented CSS czyli tłumacząc to prawie dosłownie Obiektowo Zorientowany CSS. Konwencja ta została zaproponowana w 2008 przez Nicole Sullivan. Metoda została zaczerpnięta wprost z zasad programowania w językach takich jak: Java i Ruby.
W obu tych językach występuję pojęcie obiektowości. Dlatego też stosując tą metodę będziemy starać się tworzyć obiekty z pomocą CSS. Warto tu wspomnieć, że nie stworzy się obiektu w CSS jeśli wcześniej struktura strony nie będzie odpowiednio napisana. A do czego nam to?
W praktyce chodzi o to by niektóre elementy strony mogły być swobodnie przemieszczanie – bez obawy o to że coś przestanie działać. Dlatego istotne jest by strona posiadała odpowiednią strukturę – aby coś takiego było w ogóle możliwe.
W metodzie tej obowiązują 2 zasady separacji:
Przykłady:
W OOCSS staramy się tworzyć obiekty bardziej uniwersalne dlatego nie tworzymy takich klas:
.button {
width: 150px;
height: 40px;
background: #ccc;
border-radius: 10px;
} Prawidłowo będzie rozbić to na 2 obiekty (tak by w przyszłości móc skorzystać w innym miejscu z tego samego kodu):
.button {
width: 150px;
height: 40px;
}
.skin {
background: #ccc;
border-radius: 10px;
} Użycie:
<a class="button skin" href="#">Test</a>
Przykład:
Tak NIE robimy:
.input-group .form-control {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin-bottom: 0;
} Poprawnie będzie tak:
.input-group {
position: relative;
}
.form-control {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin-bottom: 0;
} Odmienny wygląd elementu
Z godnie z założeniami OOCSS takie same obiekty np. h3, h4, <b>; powinny wyglądać wszędzie tak samo. Jednak nie zawsze jest to nam na rękę. W takich przypadkach możemy dodać do elementów, które chcemy zmienić dodatkowe klasy.
Tak nie robimy:
.sekcja-3 h3{
font-size: 20px;
}
.sekcja-3 h4{
font-size: 18px;
}
Poprawnie będzie:
h3.newsize{
font-size: 20px;
}
h4.newsize{
font-size: 18px;
}
Dla obiektów
<div class="sekcja-3"> <h3 class="newsize"></h3> <h4 class="newsize"></h4> </div>
Jak widać metoda ta jest dość prosta choć wymaga uporządkowania i „powtarzalności”. To co napisałam powyżej to oczywiście wprowadzenie do tej metody. Więcej na jej temat znajdziecie na stronach:
https://github.com/stubbornella/oocss/wiki
https://www.hongkiat.com/blog/basics-of-object-oriented-css/
Źródła:
Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…
Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…
Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…
Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…
Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…
Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…