Jak działa CSS?

CSS działa na podstawie zasad kaskadowości. Kaskadowość oznacza, że jeśli dwa lub więcej selektorów zdefiniują styl dla tego samego elementu, styl zdefiniowany z większą wagą zostanie zastosowany. CSS czyta kod od góry do dołu, nadając styl każdemu elementowi HTML, który pasuje do selektorów zdefiniowanych w pliku CSS.

Ważne jest zrozumienie, że kaskadowość odnosi się do priorytetu, a nie kolejności, w jakiej kod CSS jest napisany. Każdy element HTML ma swój własny zestaw stylów, które są zdefiniowane w pliku CSS. Jeśli dwa lub więcej selektorów CSS definiują styl dla tego samego elementu, CSS decyduje, którego stylu użyć, przy pomocy tzw. wagi.

Waga stylu określa, który styl ma pierwszeństwo w przypadku konfliktu stylów. CSS przypisuje wagę do każdego stylu na podstawie ich specyficzności, a także na podstawie kolejności występowania w kodzie CSS.

Specyficzność określa, jak konkretny jest selektor. Im bardziej szczegółowy selektor, tym większa jego specyficzność i waga. Na przykład, selektor ID ma wyższą wagę niż selektor klasy, ponieważ jest bardziej szczegółowy. Oto kilka przykładów specyficzności selektorów:

  • Selektor elementu – 1 punkt
  • Selektor klasy – 10 punktów
  • Selektor ID – 100 punktów

Kolejność występowania stylów w pliku CSS również ma znaczenie. Styl zdefiniowany później w pliku CSS ma wyższą wagę niż styl zdefiniowany wcześniej. Jeśli dwa lub więcej stylów mają taką samą wagę i specyficzność, zastosowany zostanie styl, który występuje później w kodzie CSS.

Oto kilka przykładów konkretnych zasad działania CSS:

h1 {
  color: blue;
  font-size: 36px;
}

.header h1 {
  color: red;
  font-size: 48px;
}

#logo {
  width: 100px;
  height: 50px;
}

.header #logo {
  width: 150px;
  height: 75px;
}

W tym przykładzie styl dla nagłówka h1 zostanie zastosowany dwa razy: raz dla wszystkich h1 na stronie i raz dla h1, które znajduje się w elemencie o klasie „header”. W tym przypadku styl zdefiniowany dla h1 w elemencie „header” ma wyższą wagę ze względu na większą specyficzność selektora.

Styl dla elementu o ID „logo” zostanie zastosowany tylko raz, ponieważ ID jest unikalnym identyfikatorem i nie może być używany więcej niż raz na stronie. W przypadku konfliktu stylów dla tego samego elementu, styl zdefiniowany dla bardziej szczegółowego selektora ma wyższą wagę. W tym przypadku styl zdefiniowany dla elementu o ID „logo” w elemencie „header