INF.03-01-24.01-SGStyczeń 2024 · 44 kroki · ok. 85 min · 42 kryteria z klucza
Rozwiązanie krok po kroku: Witryna firmy IT (Wersja podstawowa)
Rozwiązanie buduje witrynę firmy usług informatycznych: najpierw grafika - logo „IT”, dwa banery z myszkami i animacja GIF z tych banerów, potem trzy strony o wspólnym układzie (index.html, uslugi.html, kontakt.html) z ikoną na karcie przeglądarki, style w styl.css i skrypt JavaScript na stronie kontaktowej: po kliknięciu „Prześlij” sprawdza pole wyboru regulaminu i wypisuje pod formularzem albo ostrzeżenie na czerwono, albo imię i nazwisko wielkimi literami z treścią zgłoszenia. Ten arkusz nie ma bazy danych ani PHP - strony otwierają się wprost z dysku.
To jest wersja podstawowa. W zakładce „Nowoczesny kod (grid, osobny skrypt)” jest drugi sposób rozwiązania tego samego arkusza: bloki ułożone siatką CSS, kolory w zmiennych, formularz wysyłany przyciskiem submit i skrypt w osobnym pliku z nasłuchiwaczem zdarzenia - obie wersje są zgodne z kluczem.
Kroki idą zdanie po zdaniu za treścią arkusza - przy każdym jest polecenie z arkusza, a kod pokazuje dokładnie te linie, które je spełniają. Strona główna powstaje w całości, a dwie pozostałe powstają z jej kopii - różnią się tylko blokiem głównym. Skrypt jest najpierw pisany najprościej (onclick, innerHTML), a na końcu zostaje przerobiony na wersję z prawdziwych projektów.
Grafika pochodzi z prawdziwego archiwum materialy1 (załącznik do arkusza, hasło w treści zadania); banery i animacja są wykonane według obrazów 2a i 2b. Skrypt jest sprawdzony na danych z obrazu 3 (Anna Nowak). W podglądzie strony kontaktowej można wypełnić formularz i kliknąć „Prześlij”.
Jak liczą się punkty. Klucz ma 42 kryteria (R.1.1 - R.5.8), każde za 1 punkt. Próg zdania części praktycznej to 75%, czyli 32 punkty - można stracić 10 kryteriów i nadal zdać. Przy każdym kroku jest napisane, które kryteria spełnia; egzaminator ocenia spełnienie kryteriów z klucza, nie zgodność z tym kodem.
Suwak i strzałki obok niego - albo ←→ na klawiaturze - przechodzą krok po kroku; wyjaśnienie, pliki i podgląd zmieniają się razem z krokiem.
Lista „Etap” przenosi od razu do wybranego etapu.
„Rozwiązuję samodzielnie” chowa rozwiązanie kroku - najpierw własna próba, potem odsłonięcie.
„Tryb prezentacji” pokazuje same kroki, bez menu strony - na rzutnik.
Etap 1: Grafika i animacja
Kroki 1-4 · po tym etapie masz 9 z 42 kryteriów (pkt)
Krok 1: Logo: napis IT na całej grafice, 100 × 100 px
Kryteria: , ,
R.1.1 Przynajmniej jeden z obrazów: logo, baner1 lub baner2 zapisano w formacie umożliwiającym zapis przezroczystości, np. PNG, tło przynajmniej jednego obrazu jest przezroczyste
R.1.2 Plik z logo zawiera napis "IT" w kolorze niebieskim, wypełniający całą przestrzeń grafiki
R.1.3 Logo ma wysokość i szerokość 100 px (± 2 px)
ok. 5 min
Polecenie z arkusza
Wytyczne dla logo witryny internetowej: Cechy obrazu: tło przezroczyste, wysokość i szerokość: 100 px. Napis o treści „IT” wypełnia całą przestrzeń grafiki, zgodnie z obrazem 1. Cechy tekstu: czcionka koloru niebieskiego. Nazwa pliku: logo, format umożliwiający zapis przezroczystości.
narzędzie Tekst, kolor niebieski (0000ff), duży rozmiar, napis „IT”,
żeby napis wypełnił całą grafikę jak na obrazie 1, warstwę tekstu przerabiasz narzędziem Skalowanie (bez zachowania proporcji) tak, by litery dotykały wszystkich czterech krawędzi - napis jest wtedy rozciągnięty w pionie,
Napis wyśrodkowany z wolnym miejscem dookoła nie „wypełnia całej przestrzeni” (R.1.2).
Podgląd strony po tym kroku
Krok 2: Baner 1: grafika i napis „Usługi informatyczne”
Kryteria: , ,
R.1.4 Przynajmniej jeden obraz baner1 lub baner2 zawiera obraz z pliku grafika.jpg . Jest on wyrównany do lewej strony oraz umieszczony w banerze w całości (obie myszy są widoczne w całości)
R.1.5 Plik baner1 zawiera napis o treści „Usługi informatyczne” oraz baner2 napis „doświadczenie, niezawodność, konkurencyjne ceny” w trzech liniach. Zastosowano czcionkę szeryfową, pochyloną, koloru niebieskiego na przynajmniej jednej grafice
R.1.6 Plikom baner1 i baner2 nadano wysokość 200 px (± 2 px) i szerokość 1000 px (± 2 px)
ok. 6 min
Polecenie z arkusza
Wspólne wytyczne dla dwóch banerów: Cechy obrazu: tło przezroczyste, wysokość 200 px, szerokość 1000 px. Plik grafika.jpg przeskalowany z zachowaniem proporcji do wysokości 200 px, umieszczony w każdym banerze i wyrównany do jego lewej strony. Z prawej strony grafiki znajduje się napis: dla banera1 o treści „Usługi informatyczne”, zgodnie z obrazem 2a. Cechy tekstu: czcionka szeryfowa, pochylona, koloru niebieskiego. Nazwy plików: baner1 i baner2, format umożliwiający zapis przezroczystości.
Plik → Otwórz jako warstwygrafika.jpg (655 × 411), Warstwa → Skaluj warstwę: wysokość 200 z zamkniętym łańcuchem - szerokość wychodzi 319 px; narzędziem Wyrównanie dosuwasz warstwę do lewej i górnej krawędzi. Obie myszy muszą być widoczne w całości (R.1.4),
narzędzie Tekst z prawej strony zdjęcia: czcionka szeryfowa pochylona, np. Georgia Italic, kolor niebieski,
Eksportuj jakobaner1.png. Plik .xcf zapisujesz też osobno - posłuży do banera 2.
Podgląd strony po tym kroku
Krok 3: Baner 2: napis w trzech wierszach
Kryteria: ,
R.1.5 Plik baner1 zawiera napis o treści „Usługi informatyczne” oraz baner2 napis „doświadczenie, niezawodność, konkurencyjne ceny” w trzech liniach. Zastosowano czcionkę szeryfową, pochyloną, koloru niebieskiego na przynajmniej jednej grafice
R.1.6 Plikom baner1 i baner2 nadano wysokość 200 px (± 2 px) i szerokość 1000 px (± 2 px)
ok. 3 min
Polecenie z arkusza
Dla banera2 o treści „doświadczenie, niezawodność, konkurencyjne ceny”, zgodnie z obrazem 2b.
Z pliku banera 1 zmieniasz tylko tekst: trzy wiersze (Enter po przecinkach) - klucz wymaga napisu w trzech liniach. Mniejsza czcionka, żeby trzy wiersze zmieściły się w 200 px. Eksportuj jakobaner2.png.
Podgląd strony po tym kroku
Krok 4: Animacja GIF z opóźnieniem 3000 ms
Kryteria: , ,
R.1.7 Animację zapisano jako animacja.gif
R.1.8 Animacja zawiera obrazy dwóch banerów wyświetlane na zmianę
R.1.9 Ustawiono opóźnienie między klatkami na 3000 ms (3 s), co udokumentowano zrzutem ekranu o nazwie klatki.jpg , na którym widać okno z wprowadzoną wartością opóźnienia. Zrzut obejmuje cały obszar ekranu z widocznym paskiem zadań
ok. 5 min
Polecenie z arkusza
Animację należy przygotować w programie do obróbki grafiki rastrowej. Animację stanowią obrazy baner1 i baner2 wyświetlane na zmianę. Cechy animacji: opóźnienie między klatkami 3000 ms (3 s). Czynność ustawienia opóźnienia należy udokumentować zrzutem ekranu o nazwie klatki.jpg. Nazwa pliku: animacja.gif.
W GIMP-ie każda warstwa to jedna klatka animacji:
otwierasz baner1.png, Plik → Otwórz jako warstwybaner2.png - obraz ma dwie warstwy,
Plik → Eksportuj jakoanimacja.gif, w oknie eksportu zaznaczasz Jako animację i Pętla nieskończona, Opóźnienie między klatkami, jeśli nie określono: 3000 ms, Rozmieszczenie klatek: Jedna klatka na warstwę (zastąpienie) - przy przezroczystym tle bez tego napis z poprzedniej klatki prześwitywałby pod następną,
zanim klikniesz Eksportuj, robisz zrzut całego ekranu z tym oknem i wpisanym 3000 - klatki.jpg, bez kadrowania, z paskiem zadań (R.1.9).
Podgląd: gotowa animacja - banery zmieniają się co 3 sekundy.
Typowe błędy
Zrzut okna bez paska zadań albo wykadrowany nie spełnia R.1.9. Zapis z rozmieszczeniem „połącz” zostawia napis banera 1 widoczny pod napisem banera 2.
Podgląd strony po tym kroku
Etap 2: Strony HTML
Kroki 5-28 · po tym etapie masz 23 z 42 kryteriów (pkt)
Krok 5: Plik index.html w HTML5
Kryteria:
R.2.1 Witrynę internetową zapisano w plikach index.html, uslugi.html oraz kontakt.html oraz na stronie zastosowano deklarację języka HTML5 <!DOCTYPE html> i zdefiniowano język witryny polski np. <html lang="pl"> oraz jawnie zastosowano właściwy standard kodowania polskich znaków
ok. 1 min
Polecenie z arkusza
Cechy witryny: Strona główna o nazwie index.html oraz podstrony: uslugi.html i kontakt.html. Cechy wspólne dla wszystkich stron: Zapisane w języku HTML 5.
Zbuduj w całości index.html, a podstrony powstaną z jej kopii. <!DOCTYPE html> mówi przeglądarce, że to HTML5.
R.2.1 Witrynę internetową zapisano w plikach index.html, uslugi.html oraz kontakt.html oraz na stronie zastosowano deklarację języka HTML5 <!DOCTYPE html> i zdefiniowano język witryny polski np. <html lang="pl"> oraz jawnie zastosowano właściwy standard kodowania polskich znaków
R.2.1 Witrynę internetową zapisano w plikach index.html, uslugi.html oraz kontakt.html oraz na stronie zastosowano deklarację języka HTML5 <!DOCTYPE html> i zdefiniowano język witryny polski np. <html lang="pl"> oraz jawnie zastosowano właściwy standard kodowania polskich znaków
ok. 1 min
Polecenie z arkusza
Jawnie zastosowany właściwy standard kodowania polskich znaków.
<meta charset="UTF-8"> jako pierwszy element <head>.
R.3.5 Strona zawiera działające połączenie z zewnętrznym arkuszem stylów o nazwie styl.css, formatowanie CSS pochodzi jedynie z tego arkusza (za wyjątkiem skryptu) Uwaga: kryterium to nie jest spełnione również, gdy zdający źle przypisał co najmniej jeden selektor do bloku (np. kropka zamiast #)
ok. 1 min
Polecenie z arkusza
Arkusz stylów w pliku o nazwie styl.css prawidłowo połączony z kodem strony.
W tym arkuszu plik nazywa się styl.css.
Typowe błędy
Inna nazwa pliku (style.css, styles.css) odcina wszystkie style - kryterium R.3.5, a rezultat R.4 jest wtedy oceniany tylko z kodu.
R.2.4 Wygląd strony zdefiniowano dzieląc ją na bloki: kontener, w którym umieszczono: blok logo i menu, baner, blok główny, stopkę. Zastosowano znaczniki sekcji
ok. 2 min
Polecenie z arkusza
Podział strony na bloki: kontener całej strony, w którym znajdują się: obok siebie bloki logo i menu, poniżej baner, poniżej blok główny oraz na dole stopka. Podział zrealizowany za pomocą znaczników sekcji tak, aby wygląd układu bloków strony po uruchomieniu w przeglądarce, był zgodny z Obrazem 3.
Kontener <div id="container"> obejmuje całą treść - dzięki niemu stronę da się zwęzić i wyśrodkować jedną regułą CSS. W środku znaczniki sekcji: <section id="logo">, <nav id="menu">, <section id="banner">, <main> na blok główny i <footer>. Ustawienie logo i menu obok siebie zrobisz w CSS.
R.2.5 W bloku logo znajduje się obraz logo z tekstem alternatywnym "firma it" lub w banerze animacja.gif z tekstem alternatywnym "Usługi informatyczne"
ok. 1 min
Polecenie z arkusza
Zawartość bloku logo: obraz logo z tekstem alternatywnym „firma it”.
Obraz z atrybutem alt, małymi literami jak w arkuszu.
R.3.2 Na przynajmniej jednej stronie znajdują się odnośniki w bloku menu. Wybranie odnośnika "Strona główna" otwiera stronę index.html , "Usługi" otwiera stronę uslugi.html i "Kontakt" otwiera stronę kontakt.html
ok. 2 min
Polecenie z arkusza
Zawartość bloku menu: Odnośnik o treści „Strona Główna”, który prowadzi do strony index.html. Odnośnik o treści „Usługi”, który prowadzi do strony uslugi.html. Odnośnik o treści „Kontakt”, który prowadzi do strony kontakt.html.
Trzy <a> z nazwami plików z tego samego folderu. Ten sam blok menu będzie na każdej stronie, więc z każdej da się przejść na każdą (R.3.2). W podglądzie kliknięcia są zablokowane.
R.2.5 W bloku logo znajduje się obraz logo z tekstem alternatywnym "firma it" lub w banerze animacja.gif z tekstem alternatywnym "Usługi informatyczne"
ok. 1 min
Polecenie z arkusza
Zawartość banera: plik animacja.gif z tekstem alternatywnym „Usługi informatyczne”.
Animowany GIF wstawiasz zwykłym <img> - przeglądarka sama odtwarza klatki.
R.2.7 W stopce umieszczono numer zdającego w znaczniku <strong> (znacznik <b> jest błędem) i w bloku głównym linię poziomą <hr> oraz na stronie głównej zapisano paragraf o treści: ”Jesteśmy firmą z wieloletnim doświadczeniem w zakresie IT.”
ok. 1 min
Polecenie z arkusza
Zawartość stopki: tekst „Autor strony: ”, dalej wstawiony numer zdającego. Numer zdającego jest pogrubiony za pomocą znacznika semantycznego oznaczającego tekst ważny.
Znacznik tekstu ważnego to <strong> - przeglądarka pogrubia go domyślnie. Na egzaminie w środku stoi twój numer zdającego (PESEL), tu - autor rozwiązania.
Typowe błędy
<b> też pogrubia, ale nie znaczy „ważny” - klucz wprost uznaje go za błąd (R.2.7).
R.2.7 W stopce umieszczono numer zdającego w znaczniku <strong> (znacznik <b> jest błędem) i w bloku głównym linię poziomą <hr> oraz na stronie głównej zapisano paragraf o treści: ”Jesteśmy firmą z wieloletnim doświadczeniem w zakresie IT.”
ok. 1 min
Polecenie z arkusza
Paragraf (akapit) o treści: „Jesteśmy firmą z wieloletnim doświadczeniem w zakresie IT.”
R.2.7 W stopce umieszczono numer zdającego w znaczniku <strong> (znacznik <b> jest błędem) i w bloku głównym linię poziomą <hr> oraz na stronie głównej zapisano paragraf o treści: ”Jesteśmy firmą z wieloletnim doświadczeniem w zakresie IT.”
ok. 1 min
Polecenie z arkusza
Linia pozioma.
<hr> - znacznik pusty, bez zamknięcia (w HTML5 także bez ukośnika).
R.2.6 W bloku głównym zapisano nagłówek h2 o treści: „Firma IT” (index.html ) lub "Oferta" (uslugi.html ), lub "Kontakt" (kontakt.html )
ok. 2 min
Polecenie z arkusza
Zawartość bloku głównego dla pliku uslugi.html: Nagłówek drugiego stopnia o treści: „Oferta”. Linia pozioma.
Zapisz jakouslugi.html z kopii strony głównej i wymieniasz tylko zawartość <main>: nagłówek „Oferta” i linia pozioma. Głowa strony, logo, menu, baner i stopka zostają takie same - dlatego powstają najpierw.
R.2.8 Na stronie uslugi.html w bloku głównym zapisano jedną listę numerowaną (uporządkowaną) z elementami: Outsourcing IT, Konfiguracja komputerów, Sprzęt komputerowy, Strony internetowe; zastosowano znaczniki <ol> i <li>
ok. 1 min
Polecenie z arkusza
Lista numerowana (uporządkowana) z elementami: Outsourcing IT, Konfiguracja komputerów, Sprzęt komputerowy, Strony internetowe.
Lista uporządkowana to <ol> (ordered list) - przeglądarka sama numeruje elementy <li>.
Krok 21: Podstrona kontakt.html: nagłówek, formularz, linia
Kryteria:
R.2.6 W bloku głównym zapisano nagłówek h2 o treści: „Firma IT” (index.html ) lub "Oferta" (uslugi.html ), lub "Kontakt" (kontakt.html )
ok. 2 min
Polecenie z arkusza
Zawartość bloku głównego dla pliku kontakt.html: Nagłówek drugiego stopnia o treści: „Kontakt”. Tabela o wymiarze 2 kolumny na 6 wierszy, wypełniona kontrolkami. Linia pozioma.
Znowu kopia strony głównej, kontakt.html. Tabelę z kontrolkami obejmujesz znacznikiem <form> - bez formularza przycisk „Resetuj” nie miałby czego czyścić. Formularz niczego nie wysyła na serwer (nie ma action ani przycisku submit), służy tylko do grupowania kontrolek.
Krok 27: Tabela, wiersz 6: Przyciski Resetuj i Prześlij
Kryteria: , ,
R.2.9 Na stronie kontakt.html w bloku głównym zapisano tabelę o 2 kolumnach i 6 wierszach, zastosowano znaczniki <table>, <tr>, <td>
R.2.10 Strona zawiera trzy pola edycyjne, jedno wielowierszowe, jedno wyboru oraz dwa przyciski
R.3.4 Jeden przycisk czyści dane z pól, drugi przycisk uruchamia skrypt (obsługa zdarzenia zdefiniowana np. inline w znaczniku jako atrybut onClick lub w skrypcie JS np.: element.addEventListener("click", funkcja); lub element.onClick = …)
ok. 2 min
Polecenie z arkusza
Tabela 1, wiersz 6: Pusta komórka, przycisk „Resetuj” czyszczący kontrolki i przycisk „Prześlij”, którego wciśnięcie powoduje uruchomienie skryptu.
type="reset" - przycisk czyszczący wszystkie kontrolki formularza, bez ani linijki skryptu,
type="button" - zwykły przycisk, który nie wysyła formularza; onclick="send()" wywoła funkcję skryptu. Domyślny typ przycisku w formularzu to submit, który przeładowałby stronę i skasował wpisane dane razem z komunikatem.
Funkcję send napiszesz w części o skrypcie - na razie kliknięcie „Prześlij” zgłasza w konsoli błąd, bo funkcji jeszcze nie ma.
Kroki 29-38 · po tym etapie masz 34 z 42 kryteriów (pkt)
Krok 29: Plik styl.css: cała strona
Kryteria:
R.4.1 Ustawiono dla całej strony (body lub html) krój czcionki Helvetica oraz kolor tła #EEEEEE
ok. 1 min
Polecenie z arkusza
Styl CSS zdefiniowany w zewnętrznym pliku o nazwie styl.css. Arkusz CSS zawiera formatowanie: Całej strony: kolor tła #EEEEEE, krój czcionki Helvetica.
Selektor body. Wszystkie trzy strony podpinają ten sam plik, więc styl wystarczy napisać raz.
styl.cssCSSnowy plik
body {background-color: #EEEEEE;font-family: Helvetica;}
Podgląd strony po tym kroku (kontakt.html)
Krok 30: Kontener
Kryteria: ,
R.4.4 Ustawiono szerokość kontenera strony na 90%, bloków logo i menu na 50% (width lub grid-template-columns lub flex)
R.4.7 Ustawiono marginesy zewnętrzne (margin) dla kontenera strony na auto i dla bloku głównego na 50px oraz margines wewnętrzny (padding) górny i dolny na 10px dla bloku logo i menu oraz wszystkie marginesy wewnętrzne 10px dla stopki
ok. 1 min
Polecenie z arkusza
Kontenera całej strony: szerokość 90%, marginesy zewnętrzne wyliczone przez przeglądarkę.
margin: auto przy szerokości 90% dzieli wolne 10% po równo na lewo i prawo - strona stoi na środku.
styl.cssCSSzmienione: 4 linie
body {background-color: #EEEEEE;font-family: Helvetica;}#container {width: 90%;margin: auto;}
Podgląd strony po tym kroku (kontakt.html)
Krok 31: Bloki logo i menu
Kryteria: , , ,
R.4.2 Ustawiono kolor tła bloków: logo, menu i stopki na LightBlue oraz dla banera #DDDDDD
R.4.4 Ustawiono szerokość kontenera strony na 90%, bloków logo i menu na 50% (width lub grid-template-columns lub flex)
R.4.5 Ustawiono wysokość bloków logo i menu na 100px, banera na 200px, głównego na 400px
R.4.7 Ustawiono marginesy zewnętrzne (margin) dla kontenera strony na auto i dla bloku głównego na 50px oraz margines wewnętrzny (padding) górny i dolny na 10px dla bloku logo i menu oraz wszystkie marginesy wewnętrzne 10px dla stopki
ok. 2 min
Polecenie z arkusza
Bloków logo i menu: kolor tła LightBlue, wysokość 100 px, szerokość 50%, margines wewnętrzny górny i dolny 10 px.
Jedna reguła dla dwóch selektorów. padding: 10px 0 - góra i dół 10 px, boki 0; dzięki temu dwa bloki po 50% mieszczą się obok siebie (dopełnienie po bokach poszerzyłoby je ponad 100%).
R.4.3 Ustawiono kolor czcionki Navy dla bloku głównego
R.4.5 Ustawiono wysokość bloków logo i menu na 100px, banera na 200px, głównego na 400px
R.4.7 Ustawiono marginesy zewnętrzne (margin) dla kontenera strony na auto i dla bloku głównego na 50px oraz margines wewnętrzny (padding) górny i dolny na 10px dla bloku logo i menu oraz wszystkie marginesy wewnętrzne 10px dla stopki
R.4.2 Ustawiono kolor tła bloków: logo, menu i stopki na LightBlue oraz dla banera #DDDDDD
R.4.6 Ustawiono wyrównanie tekstu do prawej strony dla stopki
R.4.7 Ustawiono marginesy zewnętrzne (margin) dla kontenera strony na auto i dla bloku głównego na 50px oraz margines wewnętrzny (padding) górny i dolny na 10px dla bloku logo i menu oraz wszystkie marginesy wewnętrzne 10px dla stopki
ok. 1 min
Polecenie z arkusza
Stopki: wyrównanie tekstu do prawej strony, kolor tła LightBlue, marginesy wewnętrzne 10 px.
R.4.9 Ustawiono styl dla selektorów przycisków: kolor tła LightBlue i czcionki Navy
ok. 1 min
Polecenie z arkusza
Selektora przycisków: kolor tła LightBlue i czcionki Navy.
Selektor znacznika button - arkusz wymaga stylu zdefiniowanego wyłącznie przez selektor przycisków. Dlatego oba przyciski są znacznikami <button>, a nie <input type="reset">.
Typowe błędy
Przy <input type="reset"> selektor button nie zadziała - trzeba by input[type="reset"], a klucz uznaje tylko selektor przycisku.
R.4.8 Ustawiono styl dla odnośników z bloku menu: czcionka koloru Navy i rozmiaru 150%, pogrubiona bez podkreślenia, margines zewnętrzny 10px, wewnętrzny 5px; wystarczą ustawione 4 cechy z 6
ok. 2 min
Polecenie z arkusza
Odnośników z bloku menu: czcionka koloru Navy i rozmiaru 150%, pogrubiona bez podkreślenia, margines zewnętrzny 10 px, wewnętrzny 5 px.
Selektor potomka #menu a - tylko odnośniki w bloku menu (klucz wymaga stylu „jedynie w bloku menu”). Podkreślenie zdejmuje text-decoration: none.
R.3.1 Na przynajmniej jednej stronie układ bloków po uruchomieniu w przeglądarce jest zgodny z Obrazem 3 w arkuszu egzaminacyjnym (prawidłowo zastosowano właściwości CSS układające bloki na stronie, np. float i clear albo display z wartością flex lub grid albo position)
ok. 1 min
Polecenie z arkusza
Obok siebie bloki logo i menu, poniżej baner, poniżej blok główny oraz na dole stopka.
float: left stawia logo i menu w jednym wierszu, a clear: both w banerze sprowadza go pod oba bloki. Reszta bloków stoi pod spodem w zwykłym porządku.
Kroki 39-42 · po tym etapie masz 42 z 42 kryteriów (pkt)
Krok 39: Funkcja send wywoływana przyciskiem
Kryteria:
R.5.1 Skrypt napisano w języku uruchamianym po stronie przeglądarki oraz zdefiniowano funkcję wywoływaną po wciśnięciu przycisku "Prześlij"
ok. 2 min
Polecenie z arkusza
Wykonywany po stronie przeglądarki na stronie kontakt.html, wywoływany przyciskiem „Prześlij”.
Skrypt w <script> na końcu <body> strony kontaktowej. Funkcja ma nazwę z onclick przycisku: send (wyślij). Na razie pusta - kliknięcie już nie zgłasza błędu, ale nic nie robi.
Krok 41: Regulamin niezaznaczony: ostrzeżenie na czerwono
Kryteria: , ,
R.5.3 Jeżeli nie zaznaczono pola wyboru, skrypt wyświetla komunikat o treści „Musisz zapoznać się z regulaminem”
R.5.5 Komunikat jest wyświetlany w bloku głównym, w akapicie
R.5.6 Jeżeli nie zaznaczono pola wyboru komunikat wyświetlony jest w kolorze czerwonym, w innym przypadku w kolorze Navy
ok. 2 min
Polecenie z arkusza
Jeżeli nie zaznaczono pola wyboru: „Musisz zapoznać się z regulaminem”. Komunikat jest wyświetlony w kolorze czerwonym.
!accepted - zaprzeczenie: warunek jest prawdziwy, gdy pole nie jest zaznaczone. innerHTML wpisuje tekst do akapitu, a style.color (tabela w arkuszu) zmienia jego kolor. Kliknij w podglądzie „Prześlij” bez zaznaczenia regulaminu.
R.5.4 Jeżeli zaznaczono pole wyboru, skrypt wyświetla dane wprowadzone do kontrolek: w pierwszej linii imię i nazwisko, poniżej tekst „Treść Twojej sprawy:”, następnie treść zgłoszenia
R.5.6 Jeżeli nie zaznaczono pola wyboru komunikat wyświetlony jest w kolorze czerwonym, w innym przypadku w kolorze Navy
R.5.7 Dla imienia i nazwiska zastosowano funkcję zmiany na wielkie litery
R.5.8 Zastosowano znaczące nazewnictwo dla wszystkich zmiennych i funkcji w języku polskim lub angielskim. Nazwy odzwierciedlają cel zastosowania
ok. 3 min
Polecenie z arkusza
Jeżeli zaznaczono pole wyboru: „<IMIĘ><NAZWISKO> Treść Twojej sprawy: <zgłoszenie>”. Komunikat jest wyświetlony w kolorze Navy. Wartości pól <> są pobrane z kontrolek, imię i nazwisko są zawsze zapisane wielkimi literami, po nazwisku występuje łamanie linii.
toUpperCase() zamienia tekst na wielkie litery - „Anna” staje się „ANNA” (R.5.7),
łamanie linii po nazwisku to znacznik <br> w napisie - dlatego wpisujesz przez innerHTML, który interpretuje znaczniki,
komunikat w kolorze Navy.
Wpisz w podglądzie Anna, Nowak i „Kiedy mogę odebrać naprawiony sprzęt?”, zaznacz regulamin i kliknij „Prześlij” - wynik jak na obrazie 3. Nazwy zmiennych i funkcji są po angielsku i mówią, co przechowują (R.5.8).
Typowe błędy
Bez <br> (albo przy textContent) imię, nazwisko i treść sprawy wychodzą w jednym wierszu - klucz wymaga treści w drugiej linii (R.5.4).
Krok 43 · po tym etapie masz 42 z 42 kryteriów (pkt)
Krok 43: Treść z formularza jako tekst, nie HTML; słuchacz zdarzenia
ok. 5 min
Polecenie z arkusza
Wykonywany po stronie przeglądarki na stronie kontakt.html, wywoływany przyciskiem „Prześlij”.
Dwie poprawki z prawdziwych projektów:
Treść z formularza nie może trafić do innerHTML. Gdy ktoś wpisze w zgłoszeniu <b>pilne</b>, wersja egzaminacyjna pokaże pogrubione „pilne” zamiast tego, co wpisano - przeglądarka wykonała znaczniki. Tą samą drogą da się wstrzyknąć na stronę skrypt (atak XSS). Teraz komunikat składasz z kawałków: replaceChildren wstawia napisy jako zwykły tekst, a łamanie linii jako prawdziwy element <br> utworzony przez createElement. Wpisany znacznik wyświetla się dosłownie,
addEventListener("click", send) zamiast atrybutu onclick - przycisk dostaje identyfikator, a zachowanie jest w skrypcie.
Sprawdzone na atrapie strony: dane z obrazu 3 dają ten sam komunikat co wcześniej, a <b>pilne</b> zostaje tekstem. Stara linia zostaje w komentarzu. Na egzaminie wystarczy wersja wcześniejsza - klucz przyjmuje onclick i innerHTML.
Krok 44 · po tym etapie masz 42 z 42 kryteriów (pkt)
Krok 44: Plik przeglądarka.txt i nagranie płyty
ok. 5 min
Polecenie z arkusza
Po zakończeniu pracy utwórz w folderze z numerem zdającego plik tekstowy o nazwie przeglądarka.txt. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowana była poprawność działania witryny. Nagraj płytę z rezultatami pracy.
W przeglądarka.txt wpisujesz nazwę przeglądarki.
W folderze: animacja.gif, baner1.png, baner2.png, index.html, klatki.jpg, kontakt.html, logo.png, przeglądarka.txt, styl.css, uslugi.html. Nagraj płytę, sprawdź jej odczyt i opisz ją numerem zdającego.
Symulacja ekranu w przeglądarce - w Android Studio / Visual Studio wygląd może się nieco różnić.
To jedno z możliwych rozwiązań. Egzaminator ocenia spełnienie kryteriów z klucza odpowiedzi, a nie zgodność z tym kodem - inna, poprawna droga też daje punkty.
Autor rozwiązania: Bartosz Bryniarski. Licencja CC BY-NC 4.0 - kopiowanie i przeróbki do celów niekomercyjnych, z podaniem autora i źródła (link do tej strony) (zasady wykorzystania). Treść arkusza i klucza oceniania pochodzi z CKE.