HTML podstawy

HTML podstawy

Visual Studio Code (VS Code) to edytor kodu stworzony przez Microsoft. Służy do pisania, uruchamiania i testowania kodu w różnych językach programowania — np. HTML, CSS, JavaScript, Python, C++, itp.
Można w nim:
pisać strony internetowe
tworzyć programy
pisać skrypty i aplikacje
współpracować z systemem kontroli wersji (np. Git)
uruchamiać kod bez wychodzenia z edytora

VS Code sam w sobie jest lekki i szybki, a jego możliwości rozszerzają wtyczki (extensions).
Wtyczki to dodatki, które rozszerzają możliwości VS Code.
Oto kilka popularnych:

  1. Live Server
    Live Server pozwala uruchomić stronę HTML w przeglądarce i automatycznie ją odświeżać po zapisaniu zmian.
    • Otwiera lokalny serwer (np. http://127.0.0.1:5500)
    • Pokazuje stronę HTML „na żywo”
    • Gdy zapiszesz plik, przeglądarka odświeży się automatycznie
    Zmieniasz coś w index.html, zapisujesz (Ctrl + S), i od razu widzisz wynik w przeglądarce — bez ręcznego odświeżania
  2. Prettier (Code Formatter) Prettier automatycznie formatuje Twój kod, żeby był czytelny i estetyczny.
    • Uporządkuje wcięcia (tabulatory, spacje)
    • Doda lub usunie zbędne spacje i średniki
    • Ujednolici styl kodu (np. cudzysłowy, nawiasy)
    • Ułatwia współpracę w zespole, bo każdy ma „ten sam styl”
  3. ESLint. ESLint analizuje kod JavaScript lub TypeScript i sprawdza, czy nie ma błędów lub niezgodności ze standardami.
    • Wskazuje błędy w składni i logice kodu
    • Pomaga utrzymać spójny styl pisania
    • Ostrzega przed nieużywanymi zmiennymi lub niebezpiecznym kodem
    • Może automatycznie poprawiać niektóre błędy
    W VS Code w lewej części interface’u tworzymy foldery i pliki:

Foldery w VS Code – do organizowania projektu, służą do:
• grupowania plików, które należą do tego samego projektu (np. strony internetowej, programu, gry itp.),
• utrzymania porządku w kodzie,
• ułatwienia pracy, gdy masz wiele powiązanych plików.

Pliki w VS Code – do pisania kodu lub treści
Pliki to konkretne części projektu. Każdy plik ma swoje rozszerzenie, które mówi VS Code, jakiego języka lub typu treści dotyczy (np. .html, .css, .js, .py, .txt). Warto ustawić w programie widoczność rozszerzeń.

organizacja pracy:

długi tekst kodu można zawijać skrótem crtl + z

spa- single page aplication


Języki programowania:
HTML – odpowiada za strukturę strony (właściwie nie język programowania a język opisu struktury stron www)
CSS – odpowiada za wygląd i style
Java Script – odpowiada za interakcję, pozwala manipulować elementami innych języków
• Java Script powstał w 1992 r.
• ES2015 (czyli ECMAScript 2015) to wersja języka JavaScript wprowadzona w 2015 roku. To duża aktualizacja języka — dodała mnóstwo nowych możliwości, które dziś są podstawą nowoczesnego JavaScriptu.


HTML podstawy
A Każdy dokument HTML ma określoną strukturę — coś jak „szkielet” strony.
Każdy element HTML ma zazwyczaj:

  1. Tag otwierający – np.
<p>
  1. Treść – np. To jest akapit

Tag zamykający – np.

 </p>

Niektóre nie mają zamknięcia:

(np. <img>, <br>, <meta>).

Sekcja

Co zawiera

Przykład

<!DOCTYPE html>

Deklaracja typu dokumentu (HTML5)

<!DOCTYPE html>

<html>

Główny element strony (tu często informacja o tłumaczeniu na dany język)

<html lang="pl">...</html>

<head>

Informacje o stronie (niewidoczne na ekranie, info o UTF-8; meta name= ‘viewport’ content= … określenie dla urządzeń mobilnych – ustawienie na rzeczywistą szerokość ekranu)

<meta>, <title>, <link>

<body>

Treść widoczna na stronie

<h1>, <p>, <img>, <a>

Zmacznik

Znaczenie

Przykład

<h1> – <h6>

Nagłówki

<h1>Tytuł</h1>

<p>

Akapit tekstu

<p>To jest tekst.</p>

<a>

Link

<a href="https://example.com">Link</a>

<img>

Obrazek

<img src="foto.jpg" alt="Opis">

<ul>, <ol>, <li>

Listy

<ul><li>Element</li></ul>

<div>

Blok (kontener)

<div>Treść</div>

<span>

Krótki fragment tekstu w linii

<span>tekst</span>

<header>, <main>, <footer>

Sekcje semantyczne (nagłówek, część główna, stopka)

<header>Nagłówek</header>

Inne:

Znacznik

Znaczenie / zastosowanie

<main>

Główna zawartość strony

<article>

Samodzielna treść (artykuł, wpis)

<section>

Sekcja strony, blok tematyczny

<p>

Akapit tekstu

<br>

Łamanie linii w tekście

<hr>

Pozioma linia oddzielająca treść

<span>

Fragment tekstu w linii (do stylowania)

<link rel="icon">

Ikona strony (favicon)

<strong>

Ważny, pogrubiony tekst

<em>

Wyróżniony, pochylony tekst

<mark>

Podświetlony tekst

<q>

Krótki cytat w linii

<blockquote>

Dłuższy cytat, blokowy

<cite>

Źródło cytatu lub tytuł

<iframe>

Pozwala osadzić inną stronę internetową (lub dokument HTML) wewnątrz aktualnej strony. Można myśleć o nim jak o „okienku” w Twojej stronie, w którym wyświetlana jest inna zawartość.

 

W HTML elementy inline to takie, które:
• Nie łamią linii — czyli nie zaczynają nowego wiersza,
• Zajmują tylko tyle miejsca, ile potrzebuje ich zawartość,
• Mogą znajdować się wewnątrz innych elementów inline lub blokowych.

Najważniejsze elementy inline w HTML

Znacznik

Znaczenie / zastosowanie

<a>

Link

<span>

Fragment tekstu do stylowania lub selekcji

<strong>

Ważny tekst (pogrubiony)

<b>

Pogrubiony tekst (bez semantyki)

<em>

Tekst wyróżniony (pochylony)

<i>

Tekst kursywą (bez semantyki)

<mark>

Podświetlony tekst

<code>

Fragment kodu

<abbr>

Skrót z możliwością podania pełnej nazwy (title)

<cite>

Źródło cytatu lub tytuł pracy

<q>

Krótki cytat w linii

<time>

Znacznik czasu lub daty w tekście

<img>

Obrazek (inline w tekście)

<small>

Tekst mniejszy niż normalny

<sub>

Indeks dolny

<sup>

Indeks górny

W HTML elementy blokowe (block-level) to te, które:
• Zawsze zaczynają się od nowej linii,
• Zajmują całą szerokość kontenera (np. strony),
• Mogą zawierać inne elementy blokowe i inline.

Najważniejsze elementy blokowe w HTML

Znacznik

Znaczenie / zastosowanie

<div>

Ogólny kontener dla grupy elementów

<p>

Akapit tekstu

<h1><h6>

Nagłówki różnych poziomów

<header>

Nagłówek strony lub sekcji

<footer>

Stopka strony lub sekcji

<section>

Sekcja strony, np. rozdział

<article>

Samodzielna treść, np. wpis lub artykuł

<aside>

Treść poboczna, np. sidebar

<nav>

Menu nawigacyjne

<main>

Główna zawartość strony

<ul>

Lista nieuporządkowana

<ol>

Lista uporządkowana

<li>

Element listy (w <ul> lub <ol>)

<form>

Formularz

<table>

Tabela

<blockquote>

Dłuższy cytat (blokowy)

<figure>

Obrazek z podpisem

<figcaption>

Podpis obrazka (wewnątrz <figure>)

Atrybut to dodatkowa informacja o elemencie HTML.
Pomaga przeglądarce zrozumieć, jak ma działać lub wyglądać dany element. Atrybuty umieszcza się wewnątrz tagu otwierającego i zawsze mają strukturę:
nazwa="wartość"

Atrybut

Do jakiego elementu

Co robi

href

<a>

Określa adres linku

src

<img>, <script>

Określa źródło pliku (np. obrazka)

alt

<img>

Tekst alternatywny, gdy obrazek się nie wczyta

title

Dowolny

Pokazuje dymek z opisem po najechaniu kursorem

id

Dowolny

Nadaje unikalny identyfikator elementowi

class

Dowolny

Nadaje nazwę klasy (używaną w CSS/JS)

style

Dowolny

Dodaje styl bezpośrednio do elementu

lang

<html>

Określa język dokumentu (pl, en, itp.)

target

<a>

Ustawia, gdzie otworzy się link (_blank, _self, itd.)

width

<iframe>, <img>

Szerokość elementu w pikselach (lub procentach).

height

<iframe>, <img>

Wysokość elementu w pikselach (lub procentach).

loading

<iframe>, <img>

"lazy" – ładowanie elementu dopiero, gdy jest blisko widoku użytkownika (optymalizacja wydajności).

"eager" – natychmiastowe ładowanie (domyślne).

 

Atrybuty są zawsze w tagu otwierającym.
Jeśli atrybut ma wartość tekstową, należy ją pisać w cudzysłowie.
Można mieć kilka atrybutów w jednym tagu, np.:

<img src="foto.jpg" alt="Opis obrazka" width="300" height="200">

Istnieją znaczniki, które nie potrzebują zamknięcia czyli nie mają na końcu />

1. <area>

2. <base>

3. <br>

4. <col>

5. <embed>

6. <hr>

7. <img>

8. <input>

10. <meta>

11. <param>

12. <source>

13. <track>

14. <wbr>

Komentarze w HTML
Komentarze to notatki w kodzie, które:
• nie są widoczne dla użytkownika na stronie,
• nie są wykonywane przez przeglądarkę,
• służą do opisywania lub wyłączania fragmentów kodu.

Komentarz możesz też użyć, by czasowo ukryć kod, np.:

<!-- <img src="logo.png" alt="Logo"> -->

Najnowsza wersja to HTML 5, ważne informacje ogólne, w <head> znajdziemy:

1.

<!DOCTYPE html> mówi przeglądarce internetowej, z jaką wersją HTML-a ma do czynienia i jak ma interpretować kod.
W skrócie — to instrukcja dla przeglądarki, żeby poprawnie wyświetliła stronę.

2.

UTF-8 (czyt. „ju ti ef eight”) to standard kodowania znaków — czyli sposób, w jaki komputer zapisuje i odczytuje litery, cyfry, symbole i znaki specjalne.

<meta charset="UTF-8">

To linijka w sekcji strony HTML, która mówi przeglądarce:
„Ta strona używa kodowania UTF-8, więc wyświetl znaki poprawnie.”

3.

<meta name="viewport">

To znacznik meta w HTML, który kontroluje sposób wyświetlania strony na różnych urządzeniach — zwłaszcza na smartfonach i tabletach.
Znajduje się w sekcji strony, np.:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Element

Znaczenie

<meta>

znacznik z informacją o stronie

name="viewport"

dotyczy sposobu wyświetlania strony

width=device-width

dopasowuje stronę do szerokości ekranu

initial-scale=1.0

ustawia początkowe powiększenie na 100%


Łączenie z CSS

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Przykład CSS</title>
  <!-- Tutaj wstawiamy zewnętrzny CSS -->
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <h1>Witaj na mojej stronie!</h1>
</body>
</html>

·  <link> – znacznik służący do podłączenia pliku.

·  rel="stylesheet" – informuje, że to arkusz stylów.

·  href="style.css" – ścieżka do pliku CSS.

Łączenie z JS

Najczęściej przed zamknięciem tagu , żeby strona najpierw się załadowała:

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Przykład JS</title>
</head>
<body>
  <h1>Witaj!</h1>

  <!-- Tutaj wstawiamy zewnętrzny JS -->
  <script src="script.js"></script>
</body>
</html>

·  <script> – znacznik dla JavaScript.

·  src="script.js" – ścieżka do pliku JS.

Ważne uwagi:
• Ścieżka do pliku: jeśli plik CSS lub JS jest w tym samym folderze co HTML, wystarczy nazwa (style.css).
• Ładowanie JS: Jeśli umieścisz <script> w <head>, strona może się ładować wolniej — często dodaje się wtedy defer:

<script src="script.js" defer></script>

defer powoduje, że skrypt wykona się dopiero po załadowaniu całej strony

Kolejność: CSS w <head> (żeby styl był widoczny od razu), JS przed </body> lub z defer/async.


Accessibility w web designie oznacza, że strona jest:

1.     Czytelna dla osób niewidomych i słabowidzących

o   np. obsługa czytników ekranu (screen readers), alternatywne teksty do obrazków (alt).

2.     Przystosowana dla osób niesłyszących i słabosłyszących

o   np. napisy do wideo, transkrypcje audio.

3.     Łatwa do obsługi dla osób z ograniczoną sprawnością ruchową

o   np. dostępność klawiaturą, odpowiednio duże przyciski, możliwość powiększania tekstu.

4.     Zrozumiała dla wszystkich

o   logiczna struktura nagłówków (<h1>, <h2>…), odpowiednie kontrasty kolorów, czytelne etykiety formularzy.

ARIA – Accessible Rich Internet Applications

ARIA to zestaw atrybutów HTML, który pomaga osobom korzystającym z technologii wspomagających (np. czytników ekranu) zrozumieć, co robią elementy strony.

Innymi słowy: ARIA poprawia accessibility stron internetowych. Nie zmienia wyglądu strony, ale dodaje informacje semantyczne, które mówią technologii wspomagającej:

  • Role (role) – określa typ elementu.
  • Etykiety (aria-label) – opis elementu, który nie jest widoczny na stronie.
  • Stany (aria-checked, aria-expanded, aria-hidden) – informują o stanie elementu.

Najczęściej używane atrybuty ARIA

AtrybutZnaczenie
roleOkreśla rolę elementu (np. button, navigation, dialog)
aria-labelKrótki opis elementu dla czytników ekranu
aria-labelledbyWskazuje ID elementu, który opisuje dany element
aria-hiddenUkrywa element dla technologii wspomagających
aria-checkedInformuje, czy element jest zaznaczony (checkbox, radio)
aria-expandedInformuje, czy element (np. menu) jest rozwinięty
aria-livePowiadamia, że zawartość zmienia się dynamicznie

Dlaczego ARIA jest ważna?

  • Pozwala tworzyć interaktywne strony dostępne dla wszystkich.
  • Poprawia doświadczenie użytkowników czytników ekranu.
  • Wspiera standardy WCAG i dobre praktyki web accessibility.

FORMULARZE PODSTAWY

Znacznik

Znaczenie

<form>

Tworzy formularz

<label>

Opisuje pole formularza

<fieldset>

Grupuje pola

<button>

Tworzy przycisk

<input>

Tworzy pole wprowadzania danych

 

Atrybut

Znaczenie

for

Łączy etykietę z polem o danym id

id

Unikalny identyfikator elementu

autocomplete

Włącza/wyłącza podpowiedzi

placeholder

Tekst pomocniczy w polu

type

Określa rodzaj pola (tekst, email, radio, checkbox itp.)

required

Wymaga wypełnienia pola

Znacznik

Znaczenie

Gdzie się używa

Przykład

<legend>

Tytuł grupy pól

wewnątrz <fieldset>

<legend>Dane osobowe</legend>

<textarea>

Wieloliniowe pole tekstowe

wewnątrz formularzy

<textarea rows="4"></textarea>

<small>

Mniejszy, pomocniczy tekst

przy polach, w stopce, przy uwagach

<small>Hasło min. 8 znaków</small>

input obsługuje text, email, password, numer; typy inputu to:

checkbox – prawda/fałsz, wybór zerojedynkowy – np. służy do odbierania zgód, można też wybrać więcej możliwości

radio button – szereg możliwości do zaznaczania, ale możliwość wyboru tylko jednej opcji

    <form action="/submit" method="post">
        <h2>Pojedynczy checkbox</h2>
        <div>
            <label>
                <input type="checkbox" name="newsletter" value="yes">
                Chcę otrzymywać newsletter
            </label>
        </div>

type – określa typ pola (np. checkbox, radio), name = nadaje nazwę, pod którą wartość zostanie wysłana do serwera po wysłaniu formularza, value = to wartość, która zostanie wysłana, jeśli pole zostanie zaznaczone

required – atrybut dodany na końcu <input> określa pole jako obowiązkowe

checked – atrybut dodany na końcu <input> określa pole jako domyślnie zaznaczone

Atrybut method i get w <form>

<form action="/adres_docelowy" method="post"> </form>

  • action – określa, dokąd dane mają być wysłane (np. adres skryptu PHP lub API).
  • method – określa, w jaki sposób dane mają zostać przesłane.

 method="POST"

Opis:

  • Dane formularza są wysyłane „wewnątrz” zapytania HTTP, czyli niewidoczne w pasku adresu.
  • Najczęściej używana metoda, gdy przesyłasz dane osobowe, logowanie, rejestrację itp.

Cechy:

  • Bezpieczniejsza (bo dane nie widać w URL).
  • Pozwala wysyłać dużo danych (np. długie teksty, pliki).
  • Używana w formularzach logowania, kontaktowych, rejestracji.

Przykład:

<form action="/wyslij.php" method="post">

  <label for="email">Email:</label>

  <input type="email" id="email" name="email" required>

  <button type="submit">Wyślij</button>

</form>

Dane (np. [email protected]) zostaną wysłane w ciele zapytania, a nie w adresie URL.

method="GET"

Opis:

  • Dane są dołączane do adresu strony jako parametry w URL.
  • Używana głównie do pobierania danych, np. wyszukiwania, filtrowania.

Cechy:

  • Dane są widoczne w pasku adresu (np. [email protected]).
  • Nie nadaje się do przesyłania haseł i danych prywatnych.

Ograniczona długość danych (do ok. 2000 znaków).


LISTY I TABELE

Znacznik / Atrybut

Znaczenie

Użycie

<ul> rodzic

lista nieuporządkowana (kropki)

<ul><li>...</li></ul>

<ol> rodzic

lista uporządkowana (numery, litery)

<ol><li>...</li></ol>

<li>

element listy

wewnątrz <ul> lub <ol>

type

typ numeracji (1, A, a, I, i)

w <ol>

start

numer startowy listy

w <ol>

value

numer danego elementu

w <li>

<dl> rodzic

lista opisowa

<dt> + <dd>

<dt>

pojęcie (tytuł)

wewnątrz <dl>

<dd>

opis pojęcia

wewnątrz <dl>

Znacznik

Znaczenie

Gdzie się używa

<table>

Tworzy całą tabelę

Zawiera wszystkie elementy tabeli

<caption>

Dodaje tytuł tabeli (opis)

Tuż po otwarciu <table>

<tr>

Table Row – wiersz tabeli

Wewnątrz <table>

<th>

Table Header – nagłówek kolumny lub wiersza

Wewnątrz <tr>

<td>

Table Data – komórka z danymi

Wewnątrz <tr>

<thead>

Zawiera nagłówek tabeli

Nad <tbody>

<tbody>

Zawiera główną treść (wiersze z danymi)

Między <thead> a <tfoot>

<tfoot>

Stopka tabeli (np. podsumowanie)

Na końcu tabeli

<colgroup>

Grupuje kolumny (do stylowania lub atrybutów)

Po <caption>

<col>

Definiuje jedną kolumnę w <colgroup>

Wewnątrz <colgroup>

Inne ważne informacje:

Atrybuty dodaje się do dzieci nie do znaczników ‘rodziców’

W liście nieuporządkowanej punktatory są domyślne, sublista – punktatory otwarte

Lista zagnieżdżona = <ul> lub <ol> w <li>

Breadcrumbs – ścieżka nawigacji użytkownika

srcset - wskazuje alternatywne źródła obrazu dla różnych rozdzielczości

Można podać również link np. do regulaminu, sposób zawarcia linku w słowie:

<a href="/terms">regulamin</a>


FORMULARZ z przesyłaniem plików i kolejne typy input

form action="/upload" method="post" enctype="multipart/form-data">
        <!-- File input -->
        <h2>Przesyłanie plików</h2>
        
        <div>
            <label for="avatar">Avatar (tylko obrazy):</label>
            <input type="file" 
                   id="avatar" 
                   name="avatar" 
                   accept="image/*">
        </div>
        

<Label for=> - atrybut for="avatar" łączy etykietę z polem <input id="avatar">, co sprawia, że kliknięcie w tekst etykiety też aktywuje wybór pliku.

enctype="multipart/form-data” – atrybut, który określa sposób kodowania danych formularza. Bez tego przeglądarka nie dołączy plików do zapytania HTTP

<input type="file" - określa to, że pole służy do wyboru pliku

accept="image/*" - ogranicza wybór plików do obrazów (jpg, png, gif, itd.). Przeglądarka pokaże tylko te typy w oknie wyboru.

accept=".pdf" - ogranicza wybór plików do konkretnego formatu, w tym przypadku plików pdf

dodanie na koniec <input> atrybutu multiple – pozwala wybrać więcej niż jeden plik z komputera

pole freetekst, other – to już w JS

inne typy input – natywne, zdefiniowane w HTML (niepotrzebne tu biblioteki JS), używane do np. rezerwacji (oferują określone sposoby zapisu np. daty, czasu) to:

type="date”, "datetime-local" (łączenie daty i czasu lokalnego, bez strefy czasowej) "time”, "month” (w tych związanych z czasem możemy określać zakres czasu używając atrybutów min=, max=), "color”(tu picker koloru, wartości RGB i HEX),

*stare przeglądarki zdegradują ‘podpowiedzi’ do pustego pola tekstowego

*do uaktualniania dat bieżących – JS (żeby ograniczyć wybór dat)

PODSUMOWANIE / WALIDACJA FORMULARZY

TABELA TYPOWYCH input + atrybuty + opis

Typ inputGłówne atrybutyCo robi?Walidacja przeglądarki?
textmaxlength, placeholder, required, patternZwykłe pole tekstowe❌ nie, chyba że użyjesz pattern
emailrequired, multiple, placeholderPole na email✅ tak – sprawdza format @
passwordmaxlength, placeholder, requiredPole hasła (ukryte znaki)❌ brak automatycznej jakości hasła
numbermin, max, step, requiredLiczba z możliwością strzałek✅ tak
telpattern, required, placeholderNumer telefonu❌ brak walidacji bez pattern
urlrequired, placeholderLink URL✅ tak
searchplaceholderPole wyszukiwania
datemin, max, requiredWybór daty z kalendarza
timemin, max, stepGodzina
datetime-localmin, maxData + godzina
monthmin, maxWybór miesiąca
weekmin, maxWybór tygodnia
checkboxchecked, required, valuePole wielokrotnego wyboru❌ brak walidacji poza required
radioname, checked, required, valueJedna opcja z wielu (grupa)
fileaccept, multiple, requiredWybór pliku❌ (kontroluje tylko rozszerzenia)
rangemin, max, step, valueSuwak wartości
colorvalueWybór koloru
hiddenvalueUkryte dane wysyłane w formularzun/d
submitvaluePrzycisk wysyłania formularzan/d
resetvalueReset formularzan/d
buttonvalue, onclickPrzyciski niestandardowen/d
imagesrc, alt, width, heightPrzycisk graficzny wysyłający formularzn/d

Wyjaśnienie wybranych atrybutów:

Atrybut: step mówi przeglądarce, o ile ma zwiększać lub zmniejszać wartość przy użyciu strzałek (↑ / ↓) lub suwaka.

Wartość może być:

  • liczbą całkowitą (step="1")
  • ułamkiem dziesiętnym

Atrybut placeholder ustawia tekst podpowiedzi (szary tekst) wewnątrz pola, który znika, gdy użytkownik zacznie pisać. Pokazuje przykładowy format danych, jakich oczekujesz.

dla pól (input)  o typie = ”text” mamy kolejne atrybuty:

Id, name, min, max, minlenght, maxlenght (minimalna, maksymalna długość tekstu),pattern (walidacja wzorca – np. numeru telefonu wg ustalonego zapisu:  pattern="..." — zawiera wyrażenie regularne (regex), które określa, jakie dane są dozwolone; title="..." — (opcjonalnie) ustawia komunikat, który pojawia się, gdy użytkownik wpisze coś niepoprawnego), required

https://regex-generator – generator regex

Atrybuty input dotyczące logiki:

AtrybutCo robi?
requiredPole musi być wypełnione
readonlyPole nie może być zmienione
disabledPole jest całkowicie wyłączone (nie wysyłane w formularzu)
nameKlucz pod jakim dane pojawią się na serwerze
valueWartość pola (domyślna lub zaznaczona)

LISTY ROZWIJANE

a)       Bez domyślnej wartości


c)	            <label for="country">Wybierz kraj:</label>
d)	            <select id="country" name="country" required>
e)	                <option value="">-- Wybierz kraj --</option>
f)	                <option value="pl">Polska</option>
g)	                <option value="de">Niemcy</option>

<label for="country">Wybierz kraj:</label> - to etykieta (opis) dla pola formularza.

<select> - pole listy rozwijanej, <option> - jedna z opcji do wyboru

pierwsza opcja jest ustawiana jako pusta (same ””)

Atrybut for="country" łączy etykietę z elementem <select id="country">.

 Dzięki temu kliknięcie w tekst „Wybierz kraj” również aktywuje rozwijaną listę.

selected- wstępne zaznaczenie, required – obowiązkowe pole, disabled – wyłączone pole (atrybuty w option i nie tylko tu); multiple – atrybut wielokrotnego wyboru (dla select)

Znacznik <optgroup> w HTML służy do grupowania opcji (<option>) w rozwijanych listach (<select>). Dzięki niemu można uporządkować długie listy — np. kraje według kontynentów, miasta według regionów