KWALIFIKACJA PGF4 - CZERWIEC 2023

PYTANIE NR 38.
Jaki kolor będą miały teksty akapitów utworzone na podstawie przedstawionego arkusza stylów?
Ilustracja przedstawia fragment arkusza stylów CSS, który jest używany do formatowania tekstu na stronach internetowych.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W arkuszu stylów są trzy reguły dla tego samego selektora p, więc mają identyczną specyficzność. W takiej sytuacji działa kaskadowość: przeglądarka stosuje deklarację zdefiniowaną najpóźniej. Ostatnia reguła to color: red, więc tekst akapitów będzie czerwony.

Pełne wyjaśnienie:

W CSS (Cascading Style Sheets) ostateczny wygląd elementu wynika z kaskady, czyli zestawu reguł określających, która deklaracja "wygrywa", gdy kilka z nich dotyczy tego samego elementu i tej samej właściwości.

Na ilustracji w bloku <style> widoczne są trzy kolejne reguły dla selektora p:

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

Wszystkie trzy mają taką samą specyficzność, ponieważ są to identyczne selektory elementu (specyficzność typu 0,0,1). W tej sytuacji, gdy konfliktem jest ta sama właściwość (color), decyduje kolejność wystąpienia w kodzie: późniejsza deklaracja nadpisuje wcześniejszą.

Dlatego przeglądarka zastosuje ostatnią regułę: p { color: red; }. To oznacza, że teksty akapitów (<p>...</p>) będą wyświetlane na czerwono.

Dlaczego pozostałe odpowiedzi są błędne?

  • Żółty – byłby poprawny tylko wtedy, gdyby żółta deklaracja była ostatnia albo gdyby miała wyższą specyficzność (np. selektor z klasą/ID) lub użyto by !important.
  • Czarny – analogicznie: byłby wynikiem, gdyby reguła z black znajdowała się na końcu, a tu jest w środku i zostaje nadpisana.
  • Zielony – w pokazanym arkuszu nie ma deklaracji color: green, więc taki kolor nie może wynikać z tych reguł.

Wskazówka egzaminacyjna: gdy widzisz kilka reguł dla tego samego selektora i tej samej właściwości, najpierw sprawdź specyficzność. Jeśli jest taka sama, spójrz na kolejność w arkuszu — najczęściej wygrywa reguła zapisana najpóźniej.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Kaskadowość (cascade) to mechanizm wyboru reguły CSS, gdy kilka deklaracji dotyczy tego samego elementu. W tym zadaniu trzy reguły mają ten sam selektor <p> i ustawiają tę samą właściwość color, więc o wyniku decyduje kolejność w arkuszu.
Jeśli selektory są identyczne (tu: p), mają tę samą specyficzność. Gdy konflikt dotyczy tej samej właściwości (color), przeglądarka stosuje deklarację zdefiniowaną najpóźniej w kodzie. W praktyce "wygrywa" ostatnia reguła.
Czarny często kojarzy się z domyślnym kolorem tekstu w przeglądarce, więc łatwo go wybrać intuicyjnie. Jednak w CSS domyślne style są zastępowane przez reguły autora. Skoro ostatnia deklaracja dla p ustawia red, to czarny zostaje nadpisany.
Specyficzność określa "siłę" selektora: zwykle ID > klasa > element. Jeśli dwie reguły mają różną specyficzność, wygra bardziej specyficzna nawet wtedy, gdy jest wcześniej w pliku. Dopiero przy równej specyficzności decyduje kolejność wystąpienia.
Kolejność jest mniej istotna, gdy reguły mają różną specyficzność i nie używają tej samej właściwości w konflikcie. Przykładowo selektor z ID może nadpisać selektor elementu niezależnie od kolejności. Kolejność staje się kluczowa, gdy specyficzność i ważność są takie same.
Dodanie !important podnosi ważność deklaracji i może nadpisać inne reguły, nawet jeśli są później w kodzie (z pewnymi wyjątkami). Gdyby np. pierwsza reguła miała color: yellow !important;, mogłaby "wygrać" mimo że później występuje color: red;.
Najprościej użyć narzędzi deweloperskich przeglądarki (zakładka Styles/Computed). Po kliknięciu elementu <p> zobaczysz listę reguł wpływających na jego styl; deklaracje nadpisane są zwykle przekreślone. To szybka metoda debugowania konfliktów.
Często myli się zasadę "ostatnia reguła wygrywa" z hierarchią specyficzności, albo zakłada, że pierwsza reguła ma pierwszeństwo. Innym błędem jest ignorowanie tego, że konflikt dotyczy tej samej właściwości (color) oraz tego, że identyczne selektory mają identyczną specyficzność.
W kontekście pokazanych reguł dla p — nie, bo żadna z nich nie ustawia green. Zielony mógłby się pojawić tylko wtedy, gdyby istniały inne style (np. zewnętrzny plik CSS, style inline, reguły z klasą/ID) o wyższym priorytecie, ale to nie wynika z przedstawionego arkusza.
Ćwicz na krótkich przykładach: kilka reguł dla tego samego selektora, a potem zmieniaj kolejność i obserwuj efekt. Naucz się rozpoznawać specyficzność (ID/klasy/elementy) i pamiętaj o wyjątkach typu !important oraz style inline. Pomaga też praca z DevTools.
info

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

W praktyce zawodowej kluczowe jest to, że w arkuszu stylów są trzy reguły dla tego samego selektora p, więc mają identyczną specyficzność.

Źródła:

  • W3C (CSSWG), "CSS Cascading and Inheritance Level 3" (opis kaskady i porządku deklaracji) https://www.w3.org/TR/css-cascade-3/ (dostęp: 2026-02-18)
  • MDN Web Docs, "Cascade" https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance (dostęp: 2026-02-18)
  • MDN Web Docs, "Specificity" https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja MDN: kaskadowość i specyficzność CSS
  • Specyfikacja W3C dotycząca CSS Cascading and Inheritance
  • Ćwiczenia praktyczne: tworzenie kilku reguł dla tego samego selektora i obserwacja efektu w przeglądarce

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego