Bez kategorii

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)

Co to jest metodyka OOCSS?

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:

  • struktury od stylu
  • kontenerów od ich zawartości

Oddzielenie struktury od stylu

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>

Oddzielenie kontenera od zawartości

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>

Podsumowanie

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:

Metodyka OOCSS (Object Oriented CSS) – dla stron internetowych
aurelia

Recent Posts

Mity o marce osobistej, które warto znać

Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…

1 tydzień ago

Jakie zawody zastąpi AI? Czy mamy się czego bać?

Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…

2 tygodnie ago

Widmo Brockenu – co to jest?

Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…

2 miesiące ago

Relikwie: jak zdobywano, sprzedawano i podrabiano święte przedmioty

Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…

2 miesiące ago

Poznaj 6 powodów, dla których warto posiadać logo

Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…

2 miesiące ago

Dlaczego firmy mylą markę osobistą z firmową

Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…

2 miesiące ago