Przejdź do treści
Logowanie / Zarejestruj się
Złóż wniosek teraz
Zdaj-informatyka.pl
  • Kursy zawodowe
    • Kurs zawodowy z kwalifikacji INF.02
    • Kurs zawodowy z kwalifikacji INF.03
  • Konto użytkownika
  • Regulamin serwisu
  • Polityka prywatności
Zdaj-informatyka.pl
  • Kursy zawodowe
    • Kurs zawodowy z kwalifikacji INF.02
    • Kurs zawodowy z kwalifikacji INF.03
  • Konto użytkownika
  • Regulamin serwisu
  • Polityka prywatności

Kurs zawodowy z kwalifikacji INF.03

Program kursu

  • 7 Rodziałów
  • 70 Lekcji
  • 100 Dni
Pokaż rozdziałyZwiń rozdziały
  • HTML
    Język opisowy, w którym przy pomocy znaczników (tagów) określamy co zawiera strona - tekst, hiperłącza, obrazki, pola edycyjne, przyciski, tabele, listy numerowane, pojemniki na zawartość, nagłówki itd. Oprócz zawartości strony, w HTML określamy także istotne parametry witryny – tytuł i opis w rezultatach wyszukiwania Google, język i zestaw znaków właściwy dla danego kraju. Podpinamy także skrypty i arkusze stylów.
    10
    • 1.1
      Fundamentalne znaczniki w dokumencie HTML
    • 1.2
      Poprawne wypisywanie tekstów
    • 1.3
      Obrazy w HTML
    • 1.4
      Co trzeba wiedzieć o hiperłączach?
    • 1.5
      Nagłówki h1 do h6
    • 1.6
      Tworzenie tabel
    • 1.7
      Listy punktowane i numerowane oraz lista definicji
    • 1.8
      Struktura witryny – dostępne rodzaje bloków, semantyka
    • 1.9
      Układanie bloków – float:left, display:inline-block, display:flex
    • 1.10
      Formularz oraz kontrolki formularza
  • CSS
    Kaskadowe arkusze stylów (ang. Cascading Style Sheets). Style na stronie internetowej służą do opisania wyglądu elementów witryny, zdefiniowanych uprzednio w HTML (np. jakie mają kolory, rozmiary, marginesy, a nawet jak są względem siebie rozmieszczone). Kaskada to rodzaj wodospadu mającego budowę schodkową - jest to wyraźna aluzja do hierarchicznego mechanizmu dziedziczenia właściwości w CSS, który trzeba dobrze zrozumieć. Które mechaniki i właściwości CSS warto znać, aby poradzić sobie na egzaminie zawodowym?
    14
    • 2.1
      Selektory, atrybuty, wartości oraz identyfikatory kontra klasy
    • 2.2
      Jak podpiąć CSS do HTML? Na czym polega kaskadowość stylów
    • 2.3
      Zapisy kolorów w CSS
    • 2.4
      Formatowanie tekstów i czcionek
    • 2.5
      Wyśrodkowanie elementu
    • 2.6
      Margin i padding, modeł pudełkowy
    • 2.7
      Stylizowanie linków
    • 2.8
      Obramowanie (border)
    • 2.9
      Określanie wyglądu tabel
    • 2.10
      Stylizowanie list punktowanych i numerowanych
    • 2.11
      Stylizowanie kontrolek formularzy
    • 2.12
      Pozycja elementu: static, absolute, relative, fixed
    • 2.13
      Jednostki możliwe do użycia w CSS
    • 2.14
      Cheat sheet – lista właściwości CSS
  • JavaScript
    Pełnoprawny, skryptowy język programowania, w którym możemy zastosować pełny repertuar klasycznych konstrukcji językowych (instrukcje warunkowe, pętle, zmienne, tablice, instrukcje wyboru, własne funkcje, klasy itd.). W kontekście egzaminu zawodowego JS używamy najczęściej do obługi zdarzeń, przetwarzania liczb bądź napisów albo do zmiany stylów elementów witryny.
    14
    • 3.1
      Jak podpiąć skrypt JS do pliku HTML?
    • 3.2
      Tworzenie własnych funkcji, zdarzenia
    • 3.3
      Rodzaje uchwytów elementów DOM
    • 3.4
      Wypisywanie: innerHTML, innerText, outerHTML, outerText
    • 3.5
      Atrybut onclick vs. addEventListener
    • 3.6
      Instrukcje warunkowe w JS
    • 3.7
      Pętle w JS
    • 3.8
      Tablice (kolekcje) w JS
    • 3.9
      Skrypty dokonujące obliczeń, parsowanie liczb
    • 3.10
      Skrypty przetwarzające napisy
    • 3.11
      Zmiana stylów elementów strony w skryptach
    • 3.12
      Obiekty i funkcje wbudowane JS, które warto znać
    • 3.13
      Obsługa ciasteczek w JS
    • 3.14
      Skuteczne wyszukiwanie błędów, devtools
  • SQL
    Bazy danych stanowią ważny element wielu witryn internetowych, przechowując niezbędne do jej działania dane (np. konta użytkowników, w tym loginy i hasła albo listy produktów i zamówień w sklepie internetowym). MySQL to tzw. system zarządzania bazą danych DBMS (ang. Database Management System). Natomiast SQL (ang. Structured Query Language) to język, który służy do pisania zapytań do tej bazy (zapytania najczęściej umieszczamy wewnątrz skryptów PHP).
    10
    • 4.1
      Pliki SQL z bazami danych do pracy w tym kursie
    • 4.2
      Najważniejsze pojęcia bazodanowe
    • 4.3
      Zapytania wyszukujące SELECT
    • 4.4
      Wstawianie rekordów – INSERT
    • 4.5
      Aktualizowanie danych – UPDATE
    • 4.6
      Usuwanie informacji – DELETE, DROP, TRUNCATE
    • 4.7
      Struktura bazy danych – CREATE, ALTER
    • 4.8
      Uprawnienia – GRANT, REVOKE
    • 4.9
      Złączenia w bazie danych – JOIN
    • 4.10
      Grupowanie danych – GROUP BY
  • PHP
    Języki back-endowe, takie jak PHP, zajmują się mechaniką działania serwisów internetowych. PHP obsłuży na serwerze np. zachowanie algorytmu logowania, koszyk w sklepie internetowym, rejestrację użytkownika w grze przeglądarkowej. W kontekście egzaminu zawodowego najczęściej użyjemy go do współpracy z bazą danych i do przetwarzania formularzy.
    15
    • 5.1
      Podstawowy skrypt – zmienne, operatory, wypisywanie
    • 5.2
      Instrukcje warunkowe w PHP
    • 5.3
      Pętle w PHP
    • 5.4
      Tablice w PHP
    • 5.5
      Obsługa formularzy – metody POST i GET
    • 5.6
      Nawiązanie i zamykanie połączenia PHP z bazą danych
    • 5.7
      Obsługa MySQL w PHP – biblioteka mysqli i PDO
    • 5.8
      Fetchowanie danych z użyciem mysqli
    • 5.9
      Formatowanie kodu HTML wypisanego przez PHP
    • 5.10
      Funkcje wbudowane oraz zapis do pliku w PHP
    • 5.11
      Odczytywanie wartości z kontrolek formularzy
    • 5.12
      Data i czas w PHP
    • 5.13
      Ciasteczka w PHP
    • 5.14
      Mechanizm sesji
    • 5.15
      Fetchowanie danych z bazy w PDO
  • Multimedia
    5
    • 6.1
      Rodzaje grafiki komputerowej
    • 6.2
      Multimedia – audio i video
    • 6.3
      Formaty plików graficznych – JPG, PNG, GIF, WEBP, SVG, AVIF
    • 6.4
      Animacje na potrzeby stron internetowych
    • 6.5
      Najważniejsze działania na obrazach w programie graficznym
  • Na zakończenie
    2
    • 7.1
      Systemy zarządzania treścią (CMS)
    • 7.2
      Skuteczne przygotowania do egzaminu

Wypisywanie: innerHTML, innerText, outerHTML, outerText

W JavaScript istnieje kilka sposobów na wypisywanie tekstów (np. wyników obliczeń lub tekstowych podsumowań działania logiki skryptu). Czasem też chcemy obudować takie wypisywane rezultaty otrzymane w JS kodem HTML (np. umieścić w akapicie, w liście wypunktowanej albo w tabeli). Poznamy więc teraz cztery popularne właściwości: innerText, textContent, innerHTML oraz outerHTML. Są to oczywiście właściwości elementów blokowych, w których zazwyczaj umieszczamy wyniki działania skryptu – na przykład w przygotowanym uprzednio, a domyślnie pustym kontenerze typu: <div class="wyniki"></div> czy <p class="wyniki"></p>.

Wydawać się to może trywialne, bo w 90% przypadków ludzie na egzaminie korzystają z innerHTML, lecz czy na pewno dobrze znamy wszystkie cztery właściwości i różnice pomiędzy nimi? A co, jeśli arkusz wymusi na nas użycie innej właściwości? Poznajmy zatem każdą z nich!

Dostęp do tekstu wewnątrz – innerText

Po pierwsze – gwoli formalności przypomnijmy, iż z użyciem JS możemy swobodnie manipulować (zarówno zmienić, jak i odczytać) pierwotnie istniejącą, zdefiniowaną w dokumencie HTML zawartością znaczników – może to być akapit, div, nagłówek itd.

Załóżmy więc, że istnieje na stronie np. nagłówek <h2>:

<h2 class="tytul">Wylosuję dla Ciebie liczbę z przedziału od 1 do 100!</h2>
<button onclick="losujLiczbe()">Wylosuj dla mnie liczbę</button>

I w zadaniu egzaminacyjnym wymaga się od nas, żeby po kliknięciu przycisku ten nagłówek zmienił treść (zgodnie z obietnicą zawartą w jego treści) na faktyczną liczbę wylosowaną z zadanego przedziału 1..100. Aby to zrobić najprościej, możemy w JS użyć właściwości innerText (ang. inner = wewnętrzny, w środku):

function losujLiczbe() {
  // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
  var naglowek = document.querySelector(".tytul");

  // Losujemy liczbę z przedziału 1–100 (obiekt Math)
  var losowa = Math.floor(Math.random() * 100) + 1;

  // Podmieniamy tekst nagłówka na wylosowaną liczbę
  naglowek.innerText = "Twoja liczba to: " + losowa + ". Jeszcze raz?";
}

Jednak najważniejszym ograniczeniem właściwości innerText jest fakt, iż nie pozwala na interpretację HTML, to znaczy nie możemy obudować wypisywanej treści znacznikami HTML. Rozważmy dodanie do wypisanej liczby jej podkreślenia:

function losujLiczbe() {
  // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
  var naglowek = document.querySelector(".tytul");

  // Losujemy liczbę z przedziału 1–100 (obiekt Math)
  var losowa = Math.floor(Math.random() * 100) + 1;

  // Podmieniamy tekst nagłówka na wylosowaną liczbę
  naglowek.innerText = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?";
}

Rezultat w przeglądarce (oczywiście dla akurat tej wylosowanej liczby) będzie taki:

Twoja liczba to: <u>45</u>. Jeszcze raz?

Jak widzimy przeglądarka nie interpretuje znacznika <u> tylko pokazuje go jako tekst. I właśnie dlatego istnieje także właściwość innerHTML poprawnie obsługująca tagi, którą teraz się zajmijmy.

Tekst, lecz z działającymi tagami – innerHTML

Jeśli zatem chcemy z użyciem JS wygenerować nie tylko tekst, ale także obudować go znacznikami HTML, to zamiast innerText użyjemy właściwości innerHTML. Dla tego samego zadania co powyżej, kod JS będzie następujący:

function losujLiczbe() {
  // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
  var naglowek = document.querySelector(".tytul");

  // Losujemy liczbę z przedziału 1–100 (obiekt Math)
  var losowa = Math.floor(Math.random() * 100) + 1;

  // Podmieniamy tekst nagłówka na wylosowaną liczbę
  naglowek.innerHTML = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?";
}

Teraz rezultat w przeglądarce będzie już zgodny z naszą intencją podkreślenia liczby:

Twoja liczba to: 45. Jeszcze raz?

Tym razem tagi HTML są już interpretowane przez przeglądarkę, a nie pokazywane jako tekst. Koniecznie też zwróćmy uwagę na zapis właściwości w JS – jest to innerHTML, a nie często zapisywany błędnie: innerHtml – wydawać się to może trywialne, ale to popularna pomyłka!

W tym miejscu wiele osób zapyta o to, po co w ogóle istnieje właściwość innerText, skoro innerHTML również umożliwia wypisywanie tekstów, a dodatkowo pozwala (jeśli chcemy) używać znaczników? Oczywiście w grę wchodzi tutaj przede wszystkim kontekst bezpieczeństwa (możliwość używania tagów niesie ze sobą ryzyko), lecz pełną odpowiedź na to pytanie najlepiej przedstawić w postaci tabelarycznej:

Opis potencjalnego działania innerText innerHTML
Przekazuje tekst do elementu HTML Tak Tak
Pozwala również na tagi HTML w tekście Nie Tak
Usuwanie potencjalnych niebezpiecznych tagów, czyli tzw. sanityzacja kodu) Tak, bo nie obsługujemy tagów, pokazując znaczniki jako zwykły tekst Nie, bo pozwoli “wykonać” wiele znaczników w przeglądarce
Szybkość przetworzenia (bo uwzględniamy styl, widoczność) Nieco wolniejsze Nieco szybsze

Wiele osób najczęściej używa na egzaminie właśnie właściwości innerHTML do wypisywania tekstów i to nawet jeśli ten tekst nie zawiera znaczników. Raczej nie jest to błąd, a sytuacja typu overkill (ang. przesada), lecz my rozważmy użycie innerText wszędzie tam, gdzie znaczniki nie są potrzebne. W końcu nie zawsze potrzebujemy wszechstronności – czasem zależy nam najbardziej na bezpieczeństwie i prostocie zapisu.

Alternatywny dostęp do tekstu – textContent

Właściwość textContent jest podobna do innerText, natomiast różnica polegała na tym, iż umożliwiała nam ona odczytanie lub ustawienie tekstu w elemencie nie przejmując się widocznością tego kontenera, zdefiniowaną w CSS. Czyli podczas używania textContent przeglądarka nie analizowała, czy coś jest aktualnie widoczne na stronie (ustawiona właściwość CSS display:none ukrywa przecież obiekt), co jak najbardziej było uwzględniane przy użyciu innerText.

A zatem próba odczytania tekstu z ukrytego akapitu poprzez innerText zakończyłaby się niepowodzeniem – w poniższym skrypcie otrzymalibyśmy pustą wartość w drugim alercie:

<style> .napis { display:none; } </style>

<p class="napis">Tajemnicza, ukryta na stronie treść akapitu.</p> 
<button onclick="pokazZawartosc()">Odczytaj niewidoczną treść</button>

<script>

function pokazZawartosc() 
{
    var akapit = document.querySelector(".napis"); 
    
    alert(akapit.textContent);
    alert(akapit.innerText);
}

</script>

Dlaczego jednak cały czas mówimy o tym w czasie przeszłym? Ponieważ współczesne przeglądarki (np. Google Chrome, Firefox) zaktualizowały sposób działania innerText ujednolicając ich zachowanie – oba alerty zwrócą zawartość akapitu. Ta drobna różnica w działaniu obu sposobów jest więc dziś nieaktualna, lecz oczywiście właściwość textContent wciąż pozostaje jak najbardziej działającą alternatywą dla innerText i możemy jej bezproblemowo także używać.

Właściwość outerHTML – dostęp także do elementu

Kolejna właściwość, czyli outerHTML (ang. outer = zewnętrzny) pozwala na dostęp (odczyt, zapis) do całego elementu, a nie tylko jego zawartości! Rozważmy więc w poniższym przykładzie zmianę także samego znacznika, a nie samej jego wewnętrznej zawartości:

<p id="tekst">To jest paragraf.</p>
<button onclick="zmienOuterHTML()">Zmień także rodzaj znacznika</button>
function zmienOuterHTML() { 
    var tekst = document.getElementById("tekst");
    tekst.outerHTML = "<h2>Czary mary - teraz to nagłówek!</h2>"; 
}

I tak oto akapit <p> został podmieniony w przeglądarce w JS na nagłówek <h2>. Zależnie od arkusza z zadaniem, czasami może się to okazać przydatne na egzaminie INF.03 oraz oczywiście także w praktyce tworzenia realnych stron internetowych, zależnie od naszych intencji.

Interpolacje podczas wypisywania

W JavaScript bardzo często chcemy wypisać wartość jakiejś zmiennej razem z tekstem. Na przykład: użytkownik podał imię, a my chcemy napisać: Witaj, Janek! albo Podano liczbę: 42. Właśnie w takich sytuacjach do gry wchodzi tzw. interpolacja łańcuchów znaków – czyli sposób łączenia tekstu z wartością zmiennej – najlepiej gdyby był czytelny, nowoczesny i wygodny.

Klasyczny sposób w JS to oczywiście używany także w tej lekcji operator konkatenacji +:

let imie = "Kasia";
console.log("Witaj, " + imie + "!");

Zapis działający i w zupełności wystarczający do egzaminu. Natomiast stanie się on mniej nieczytelny, gdy chcemy wstawić do łańcuch kilka zmiennych lub dłuższy tekst. Cudzysłowy, plusy i spacje mieszają się – dla wielu osób łatwo się w tym miejscu pomylić. I dlatego warto poznać nowocześniejszy sposób – interpolację z użyciem zapisu ${zmienna}:

let imie = "Kasia";
console.log(`Witaj, ${imie}!`);

Są to tzw. “szablony tekstowe” (ang. template strings), jak widać zapisane w tzw. backticks (czyli apostrofach typu `, które wstawiamy na klawiaturze za pomocą klawisza tyldy – pod Escape). Dzięki takiemu zapisowi zdania wyglądają podobnie jak w języku naturalnym – nie ma tylu spójników – jest to bardzo intuicyjne i czytelne.

Gdy chcemy wstawić kilka wartości – np. imię, nazwisko i wiek – to taki zapis z interpolacją stanie się już nie tylko czytelniejszy, ale także krótszy:

let imie = "Kasia";
let nazwisko = "Nowak";
let wiek = 18;

// template strings
console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`);

// klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę!
console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");

Porównanie czytelności i długości widać gołym okiem. Gdzie możemy używać zapisu ${zmienna} w template strings? W codziennych egzaminacyjnych sytuacjach – na przykład:

  • console.log(...) – informacja w logach konsoli w Devtools
  • alert(...) – tekst w wyskakującym oknie typu alert
  • innerHTML = ... – wyświetlanie tekstu w div czy akapicie na stronie
  • przekazywanie wartości np. adresów URL do zmiennych

Czego potrzebujemy, żeby to nowoczesne wypisywanie działało? Musimy pamiętać o dwóch rzeczach:

  • Zamiast zwykłych cudzysłowów "..." lub apostrofów prostych '...' używamy backticków – czyli: `...`.
  • W środku zapisujemy zmienną w formacie:  ${nazwaZmiennej}

Podsumowanie

Na koniec jeszcze jedna uwaga, konieczna w tym miejscu – zwróćmy uwagę, iż akapity, nagłówki czy divy i pojemniki semantyczne (article, section, header, footer, aside) faktycznie posiadają w JS cztery omówione przez nas w tej lekcji właściwości, natomiast co innego pola formularzy (inputy, textarea, przyciski) – aby dostać się do zawartości wewnątrz nich wykorzystujemy właściwość value, czyli wartość w środku pola. Pomieszanie tych właściwości to stosunkowo częsta pomyłka.

Co na pewno warto zapamiętać?

  • innerText – pozwala na dostęp do tekstu, podobnie jak textContent – dawniej co prawda istniała opisana przez nas różnica przy ustawieniu właściwości display:none w CSS dla elementu (obiektu) zdefiniowanego w HTML, jednak we współczesnych przeglądarkach działanie obu właściwości zostało ujednolicone
  • innerHTML – pozwala dodawać znaczniki HTML podczas wypisywania, co może być niebezpieczne
  • outerHTML – dając dostęp także do samego znacznika, pozwala nawet podmienić cały element (obiekt) na inny
  • Interpolacja łańcuchów, czyli zastosowanie “szablonów tekstowych” (ang. template strings), zapisanych w tzw. backticks ` poprawia czytelność wypisywania, zwłaszcza dla wielu zmiennych, które normalnie trzeba by konkatenować operatorem +:
// template strings
console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`);

// klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę!
console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");
Rodzaje uchwytów elementów DOM
Poprzednie
Atrybut onclick vs. addEventListener
Dalej

Mirosław Zelent i Damian Stelmach – zmieniamy naukę informatyki na bardziej przystępną. Wierzymy w nauczanie, które rozpala pasję, a nie takie, które wynika z przymusu. Naszym celem jest osiągać wielokrotnie zadziwiający stopień przyswajalności materiału. Taki, który pozwoli każdemu, kto tylko zechce popracować, stawać się o mały krok lepszym w tym co robi. Temat po temacie, film po filmie, wykład po wykładzie.

Motto: Nie porównuj siebie do innych – jedyną osobą od której powinieneś być lepszy jesteś ty sam z dnia wczorajszego

  • Logowanie / Zarejestruj się
  • Regulamin serwisu
  • Polityka prywatności
  • Nasz kanał YouTube
  • Egzamin-informatyk.pl
  • Egzamin-programista.pl
  • Pasja-informatyki.pl
  • Blog informatyczny
  • Fanpage na Facebooku
  • Forum dyskusyjne
  • Nasz podcast
  • Profil Patronite
2025 © Wszelkie prawa zastrzeżone. Zdaj informatyka - kursy online z kwalifikacji INF.02 i INF.03, które pomogą Ci zdać egzaminy w technikum, przygotowane przez Damiana Stelmacha i Mirosława Zelenta - nauczycieli znanych z kanału Pasja informatyki w YouTube.
Dbamy o Twoją prywatność

Korzystamy z plików cookies lub podobnych technologii umożliwiających poprawne działanie strony oraz w celu dostosowania oferty do Twoich potrzeb. Dowiedz się w polityce prywatności jak serwis i nasi partnerzy zbierają oraz wykorzystują dane. Możesz zaakceptować wykorzystanie przez nas plików i przejść do serwisu lub dostosować ich użycie wedle własnych preferencji.

Funkcjonalne Zawsze aktywne
Przechowywanie lub dostęp do danych technicznych jest ściśle konieczny do uzasadnionego celu umożliwienia korzystania z konkretnej usługi wyraźnie żądanej przez subskrybenta lub użytkownika, lub wyłącznie w celu przeprowadzenia transmisji komunikatu przez sieć łączności elektronicznej.
Preferencje
Przechowywanie lub dostęp techniczny jest niezbędny do uzasadnionego celu przechowywania preferencji, o które nie prosi subskrybent lub użytkownik.
Statystyka
Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do celów statystycznych. Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do anonimowych celów statystycznych. Bez wezwania do sądu, dobrowolnego podporządkowania się dostawcy usług internetowych lub dodatkowych zapisów od strony trzeciej, informacje przechowywane lub pobierane wyłącznie w tym celu zwykle nie mogą być wykorzystywane do identyfikacji użytkownika.
Marketing
Przechowywanie lub dostęp techniczny jest wymagany do tworzenia profili użytkowników w celu wysyłania reklam lub śledzenia użytkownika na stronie internetowej lub na kilku stronach internetowych w podobnych celach marketingowych.
Zarządzaj opcjami Zarządzaj serwisami Zarządzaj {vendor_count} dostawcami Przeczytaj więcej o tych celach
Dostosuj
{title} {title} {title}
Zdaj-informatyka.pl
Zalogować sięZapisać się

Zalogować się

Nie masz konta? Zapisać się
Nie pamiętasz hasła?

Zapisać się

Masz już konto? Zalogować się