KWALIFIKACJA PGF4 - STYCZEŃ 2020 (test 2)

PYTANIE NR 38.
Jaki kolor będą miały teksty akapitów utworzone na podstawie przedstawionego arkusza stylów?
 <style> p{color: yellow;} p{color: black;} p{color: red;} </style> 
Ilustracja przedstawia fragment kodu CSS, który definiuje styl dla elementów akapitów (p) w dokumencie HTML.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wszystkie trzy reguły dotyczą tego samego selektora (p) i ustawiają tę samą właściwość color. Ponieważ mają identyczną specyficzność i brak modyfikatorów typu !important, zadziała zasada kaskady: wygrywa ostatnia deklaracja, czyli color: red.

Pełne wyjaśnienie:

W arkuszu stylów podano trzy deklaracje dla tego samego selektora typu p:

  • p { color: yellow; }
  • p { color: black; }
  • p { color: red; }

Każda z nich dotyczy elementów akapitów (znaczników <p>) i ustawia tę samą właściwość: color, czyli kolor tekstu.

W CSS, gdy kilka reguł pasuje do tego samego elementu i konflikt dotyczy tej samej właściwości, przeglądarka stosuje mechanizm kaskadowości. Dla rozstrzygnięcia konfliktu kluczowe są m.in.:

  • ważność (np. !important),
  • pochodzenie (styl autora, użytkownika, domyślny),
  • specyficzność selektora,
  • kolejność wystąpienia w arkuszu.

W tym zadaniu wszystkie trzy reguły:

  • mają tę samą "wagę" (brak !important),
  • pochodzą z tego samego miejsca (jeden blok stylów autora),
  • mają identyczną specyficzność, bo selektor jest taki sam: p.

Skoro ważność i specyficzność nie rozstrzygają sporu, decyduje kolejność: ostatnia deklaracja nadpisuje wcześniejsze. Dlatego finalnie kolor tekstu akapitów będzie ustawiony przez ostatnią regułę: color: red, czyli tekst będzie czerwony.

Pozostałe propozycje są niepoprawne, bo odpowiadają wcześniejszym (nadpisanym) deklaracjom lub w ogóle nie występują w kodzie. "Czarny" i "żółty" pojawiają się w arkuszu, ale przegrywają z późniejszą regułą. "Zielony" nie jest ustawiany w żadnej deklaracji, więc nie może być wynikiem przedstawionego stylu.

Wskazówka egzaminacyjna: gdy widzisz kilka razy ten sam selektor i tę samą właściwość, najpierw sprawdź, czy nie ma !important i czy specyficzność jest taka sama. Jeśli tak, patrz na regułę zapisaną najniżej w arkuszu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Kaskadowość CSS to zestaw reguł, które rozstrzygają konflikt, gdy kilka deklaracji ustawia tę samą właściwość (np. color) dla tego samego elementu. Najczęściej decydują: !important, specyficzność i na końcu kolejność w arkuszu.
Gdy selektory mają tę samą specyficzność i nie ma różnic w ważności (brak !important), przeglądarka stosuje zasadę "last one wins". Dzięki temu autor może nadpisać wcześniejsze ustawienia, dopisując poprawkę niżej w pliku lub w później dołączonym arkuszu.
Specyficzność określa "siłę" selektora. Selektor bardziej szczegółowy (np. z identyfikatorem) zwykle nadpisze mniej szczegółowy (np. sam typ). Dopiero gdy specyficzność jest taka sama, rozstrzyga kolejność w kodzie. To częsty powód, że kolor nie zmienia się mimo dopisania reguły.
!important podnosi ważność deklaracji i często powoduje jej wygraną w kaskadzie. Nie oznacza to jednak "magii": jeśli obie konkurujące deklaracje mają !important, wtedy wraca rozstrzyganie przez specyficzność i kolejność. Nadużywanie !important utrudnia późniejsze utrzymanie stylów.
Użyj narzędzi deweloperskich (DevTools): zaznacz element <p>, przejdź do zakładki stylów i znajdź właściwość color. Zobaczysz listę reguł oraz te przekreślone (nadpisane). To najszybszy sposób na diagnozę konfliktów kaskady.
Kolejność bywa istotna, ale zwykle najpierw decyduje specyficzność. Jeśli jeden selektor jest "silniejszy", to nadpisze drugi nawet wtedy, gdy jest zapisany wcześniej. Kolejność rozstrzyga dopiero wtedy, gdy ważność i specyficzność są takie same (albo praktycznie równoważne).
Częste pomyłki to: wybór pierwszej reguły zamiast ostatniej, ignorowanie kaskady, mylenie specyficzności z kolejnością oraz nieuwzględnianie !important. W zadaniach egzaminacyjnych warto zawsze porównać selektory i sprawdzić, czy dotyczą tej samej właściwości.
Tak, color jest właściwością dziedziczoną, więc akapit może przejąć kolor np. z <body>. Jednak jeśli dla <p> istnieje bezpośrednia deklaracja color, to ona ma pierwszeństwo przed dziedziczeniem. Dziedziczenie ma znaczenie głównie wtedy, gdy brak deklaracji na elemencie.
Warto usuwać duplikaty, gdy utrudniają utrzymanie projektu: zwiększają ryzyko błędów, bo nie wiadomo, która reguła "naprawdę działa", i spowalniają analizę. Lepiej zostawić jedną, docelową deklarację albo świadomie rozdzielić style (np. klasy) zamiast wielokrotnie powtarzać selektor p.
Przerób schemat: ważność → pochodzenie → specyficzność → kolejność. Ćwicz na krótkich przykładach z 2–4 regułami i sprawdzaj wynik w DevTools. Ucz się rozpoznawać selektory (typ, klasa, identyfikator) i przewidywać, co zostanie nadpisane.
info

Około 61% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że wszystkie trzy reguły dotyczą tego samego selektora (p) i ustawiają tę samą właściwość color.

Źródła:

  • W3C Recommendation: Cascading Style Sheets Level 2 Revision 1 (CSS 2.1), rozdział 6 "Assigning property values, Cascading, and Inheritance" (w szczególności 6.4 "The cascade") https://www.w3.org/TR/CSS21/cascade.html - dostęp 2026-02-28
  • MDN Web Docs: "Cascade and inheritance" https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance - dostęp 2026-02-28
  • MDN Web Docs: "Specificity" https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity - dostęp 2026-02-28

Materiały:

  • Dokumentacja kaskadowości CSS (Cascade) w specyfikacji W3C
  • Artykuły/MDN o zasadach cascade i specificity
  • Ćwiczenia z Chrome/Firefox DevTools: śledzenie, która reguła ustawia color

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego