KWALIFIKACJA PGF4 - WRZESIEŃ 2014

PYTANIE NR 32.
W pliku style.css, dla witryny tworzonej w HTML 5, zamieszcza się deklaracje: header, nav,
article, footer { display:block; } w celu
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Ustawienie display:block dla elementów HTML5 (np. <header>, <nav>, <article>, <footer>) było stosowane jako obejście dla starszych przeglądarek, które nie rozpoznawały nowych znaczników i mogły renderować je nieprawidłowo. Dzięki deklaracji elementy zachowują się jak blokowe i układ strony jest poprawny.

Pełne wyjaśnienie:

W HTML5 wprowadzono wiele nowych elementów semantycznych, m.in. <header>, <nav>, <article> oraz <footer>. W nowoczesnych przeglądarkach mają one zdefiniowane typowe zachowanie w układzie dokumentu (zwykle jako elementy blokowe), więc mogą być stylowane i uczestniczą w przepływie strony tak, jak oczekuje autor.

Problem historycznie pojawiał się w bardzo starych przeglądarkach, które nie obsługiwały HTML5. Takie przeglądarki mogły traktować nieznane elementy w sposób nieprzewidywalny (np. jak elementy liniowe), co prowadziło do "rozsypania" layoutu: menu, nagłówek czy stopka nie zajmowały pełnej szerokości, a marginesy i wymiary nie działały jak dla bloków. Jednym z prostych obejść było jawne zadeklarowanie w CSS:

header, nav, article, footer { display: block; }

To wymuszało na silniku renderującym, by te elementy zachowywały się jak blokowe, dzięki czemu układ strony był stabilniejszy nawet przy słabszym wsparciu HTML5.

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

  • "spełnienia wymogów standardu języka HTML 5." – standard HTML nie wymaga dopisywania takiej reguły CSS; to nie jest warunek "poprawności HTML5", tylko praktyka kompatybilnościowa.
  • "zapewnienia poprawnej prezentacji w przeglądarkach na urządzenia mobilne." – reguła nie jest specyficzna dla mobile. Urządzenia mobilne zwykle dość wcześnie wspierały HTML5; problem dotyczył raczej starych wersji przeglądarek desktopowych.
  • "spełnienia wymogów standardu języka CSS." – CSS jako standard nie narzuca tworzenia takich reguł. To autor strony decyduje o stylach; tutaj chodzi o zachowanie renderowania w określonych implementacjach przeglądarek.

W praktyce w nowych projektach takie obejścia są coraz rzadziej potrzebne, bo wsparcie HTML5 jest powszechne. Warto jednak rozumieć sens tej reguły, bo bywa spotykana w starszych szablonach oraz w materiałach edukacyjnych dotyczących kompatybilności.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Wymusza, aby wskazane elementy były blokowe, czyli zajmowały całą dostępną szerokość i zaczynały się od nowej linii. To stabilizuje układ (marginesy, szerokości, wysokości) i bywało potrzebne, gdy przeglądarka źle traktowała nieznane elementy HTML5.
Bardzo stare przeglądarki mogły nie rozpoznawać nowych znaczników HTML5. "Nieznany" element mógł być renderowany inaczej niż blok (np. jak element liniowy), co psuło layout. Dlatego stosowano obejścia w CSS oraz skrypty typu HTML5 Shiv.
Nie. Standard HTML5 nie nakazuje dodawania takiej reguły. To praktyczne rozwiązanie kompatybilnościowe, które miało poprawić wyświetlanie w konkretnych, starych implementacjach przeglądarek. W nowoczesnych przeglądarkach zwykle nie jest konieczne.
Najczęściej dotyczyło to elementów struktury strony, np. <header>, <nav>, <section>, <article>, <aside>, <footer>. Są to "kontenery" treści, więc w typowym układzie działają jak bloki i tak też chciano je wymusić w starszych przeglądarkach.
Pośrednio może wpływać na układ, ale to nie jest technika "pod mobile". Responsywność opiera się głównie na siatkach, flexboxie, gridzie i media queries. Reguła display:block dla elementów HTML5 była historycznie używana głównie dla kompatybilności ze starymi przeglądarkami.
Typowe sygnały to: lista elementów HTML5 ustawiana na display:block, obecność skryptu HTML5 Shiv/HTML5Shiv, warunkowe komentarze dla starych Internet Explorerów oraz dodatkowe "polyfille". Takie fragmenty często występują w starszych szablonach.
HTML5 Shiv to skrypt, który pomagał starym przeglądarkom (zwłaszcza dawnym wersjom IE) "rozpoznać" nowe elementy HTML5, aby można je było stylować CSS. Często łączono go z regułami typu display:block, żeby layout był możliwie zgodny z zamierzeniem.
Gdy masz pewność, że projekt nie musi wspierać bardzo starych przeglądarek i testy regresji nie wykazują różnic w układzie. Usuwanie warto robić ostrożnie: sprawdzić layout na różnych silnikach, a następnie upraszczać CSS, by uniknąć martwego kodu.
Najczęściej myli się "zgodność ze standardem" z "kompatybilnością przeglądarek". Uczniowie zakładają, że skoro jest HTML5, to chodzi o wymagania formalne HTML. Drugi błąd to automatyczne kojarzenie wszystkiego z "mobile", mimo że problem dotyczył starych przeglądarek desktopowych.
Jeśli w treści pojawia się motyw: "przeglądarki, które nie obsługują…", "stare wersje", "polyfill", "shim", "fallback" – to niemal zawsze chodzi o kompatybilność i obejścia. Pytania stricte o standard koncentrują się na poprawności składni i znaczeniu elementów, nie na zachowaniu starych przeglądarek.
info

To pytanie poprawnie rozwiązuje 57% zdających egzamin. średnie

W praktyce zawodowej kluczowe jest to, że dzięki deklaracji elementy zachowują się jak blokowe i układ strony jest poprawny.

Źródła:

  • MDN Web Docs: "display" (CSS) – https://developer.mozilla.org/en-US/docs/Web/CSS/display (dostęp: 2026-03-01)
  • MDN Web Docs: "Semantics" / elementy semantyczne HTML (np. header, nav, article, footer) – https://developer.mozilla.org/en-US/docs/Glossary/Semantics (dostęp: 2026-03-01)
  • MDN Web Docs: "HTML5 Shiv" (informacje o wsparciu HTML5 w starszych przeglądarkach) – https://developer.mozilla.org/en-US/docs/Glossary/HTML5_Shiv (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja MDN: HTML elementy semantyczne i zgodność przeglądarek
  • Dokumentacja MDN: CSS display
  • Materiały o historii wsparcia HTML5 w Internet Explorer i koncepcji HTML5 Shiv

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego