Znasz już prawie wszystkie elementy HTML5, w tym znasz wszystkie najczęściej używane i kilka rzadziej używanych z nich. W tym rozdziale kursu poznasz pozostałe. Niektóre z nich są używane rzadko lub mają specyficzne zastosowania, ale warto wiedzieć o ich istnieniu, bo może kiedyś będzie trzeba z nich skorzystać.
We wcześniejszych rozdziałach omawialiśmy elementy z luźnym podziałem na kategorie. W kilku pierwszych rozdziałach kursu omawialiśmy więc głównie elementy służące do znakowania różnego rodzaju fragmentów tekstu (np. strong
, em
itd.), a potem przeszliśmy do elementów struktury dokumentu HTML5, formularzy i tabel.
Ten rozdział podzielimy sobie dla ułatwienia na kategorie. Zaczniemy od trzech elementów zaliczanych do kategorii interaktywnych: details
, summary
i dialog
.
Elementy interaktywne HTML5
Do kategorii elementów interaktywnych w HTML5 zaliczają się details
, summary
i dialog
. Ich interaktywność polega na tym, że wchodzą one w interakcję z użytkownikiem.
Elementy details
i summary
są ze sobą ściśle powiązane.
Element details
tworzy na stronie rodzaj rozwijanego okienka, w którym można umieścić dowolne dodatkowe informacje, takie które nie zawsze są potrzebne użytkownikowi. Dobrym przykładem jego zastosowania może być spis treści artykułu, który można przedstawić w zwiniętej formie, aby nie zajmował dużo miejsca, którą użytkownik w razie potrzeby może rozwinąć.
Natomiast element summary
reprezentuje podpis lub legendę dotyczące pozostałej zawartości elementu summary
, którego jest potomkiem (musi być jego pierwszym dzieckiem).
Za pomocą tych dwóch elementów moglibyśmy na przykład utworzyć spis treści tego artykułu, podobny do widocznego w pasku bocznym:
W przeglądarce to wygląda tak, jak na poniższym zrzucie ekranu (oczywiście wygląd elementu i jego zawartości można uatrakcyjnić za pomocą CSS):
Kliknięcie strzałki lub etykiety powoduje rozwinięcie okienka z treścią:Ewentualnie możemy sprawić, aby zawartość elementu details
była domyślnie otwarta. W tym celu należy mu nadać atrybut logiczny open
:
Trzeci element interaktywny to dialog
, który służy do tworzenia okien dialogowych. W oknie takim można wyświetlić wiadomość dla użytkownika, poprosić o odpowiedź na pytanie itd.
Pełną funkcjonalność okna można uzyskać przy użyciu skryptów, np. JavaScript, ale warto też wiedzieć, że do interakcji z nim można używać także formularzy, które mają atrybut method
ustawiony na wartość dialog
.
Zwróć uwagę na atrybut open
. Gdyby nie został dodany, domyślnie okno byłoby niewidoczne.
W przeglądarce internetowej ten element wyglądałby tak, jak na poniższym zrzucie ekranu. Kliknięcie przycisku OK spowoduje zniknięcie okna.
Następna kategoria elementów, którą się zajmiemy, to tzw. elementy treści osadzonej (ang. embedded content). Jednego jej przedstawiciela, element img
, znasz już bardzo dobrze.
Elementy treści osadzonej
W HTML5 istnieje kilka elementów treści osadzonej. Jak sama nazwa wskazuje, za ich pomocą osadzamy na stronach HTML różnego rodzaju treści, np. element img
służy do wstawiania obrazów na strony, a element video
umożliwia umieszczanie na nich filmów wideo. Poniższa tabela zawiera zestawienie elementów z tej kategorii z krótkimi opisami.
Element | Opis |
---|---|
area | Reprezentuje klikalny obszar na mapie odsyłaczy utworzonej za pomocą elementu map |
audio | Wstawia na stronę treść dźwiękową |
embed | Wstawia na stronę zewnętrzne aplikacje lub treści interaktywne |
iframe | Ramka wewnętrzna |
img | Obraz |
map | Mapa odsyłaczy |
math | Reprezentuje treść matematyczną w języku MathML |
object | Wstawia zasoby zewnętrzne |
picture | Umożliwia zdefiniowanie dodatkowych zasobów graficznych do elementu img |
source | Określa źródła plików multimedialnych w elementach multimedialnych |
svg | Reprezentuje grafikę wektorową w technologii SVG. Jeśli chcesz ją dokładnie poznać, przeczytaj artykuł Grafika SVG – obszerny przewodnik |
track | Określa ścieżki tekstowe do elementów multimedialnych |
video | Wstawia na stronę treść wideo |
Nie będziemy szczegółowo zajmować się wszystkimi tymi elementami, ale przyjrzymy się dokładniej paru z nich.
Responsywne grafiki
W rozdziale dotyczącym dostosowywania stron internetowych do urządzeń mobilnych poznaliśmy techniki CSS umożliwiające tworzenie responsywnych stron internetowych oparte na tzw. zapytaniach medialnych. To jednak nie jest jedyna technika umożliwiająca sprawienie, aby strona lepiej wyglądała i sprawniej działała w różnych urządzeniach.
Język HTML5 zawiera element picture
umożliwiający wybór różnych obrazów graficznych do załadowania na stronie w zależności od rozmiaru ekranu. Element ten może zawierać dowolną liczbę elementów source
i jeden element img
, ewentualnie z dodatkowymi elementami skryptowymi.
Sam element picture
jest tylko mało interesującym kontenerem. Ciekawsze jest to, co znajduje się w jego treści, czyli elementy source
i img
.
Spójrz na poniższy przykład, który mógłby znaleźć się w naszej witrynie „Ciekawi ludzie” na stronie o Feynmanie:
Element source
ma kilka atrybutów. W tym przykładzie użyliśmy dwóch z nich. Pierwszy to media
, w którym można wpisać dowolne zapytanie medialne, a drugi to srcset
, w którym można podać listę deskryptorów obrazów rozdzielanych przecinkami. W powyższym przykładzie jego wartość ma najprostszą możliwą postać, czyli reprezentuje po prostu adres obrazu.
Ostatnim dzieckiem elementu picture
zawsze powinien być element img
, który zostanie użyty przez przeglądarki nieobsługujące elementu picture
i source
lub w sytuacji, gdy żaden nie zostanie dopasowany do obecnego stanu okna.
Gdybyśmy dodali powyższy element picture do naszej strony, to na ekranach o szerokości do 768 pikseli wyświetlany byłby obraz feynman-small.png, a na większych – feynman-big.png. W przeglądarkach nieobsługujących elementów picture
i source
zostałby wyświetlony element feynman.png.
Jeśli masz ochotę zrobić coś samodzielnie, możesz przygotować na swoje strony różne wersje obrazów i dodać je do stron za pomocą odpowiednich elementów source
(nie zapomnij też o atrybutach width
i height
).
Dzięki temu w urządzeniach mobilnych będą ładowane mniejsze obrazy, co przyczyni się do zmniejszenia ilości zużywanego transferu, który w ich przypadku czasami jest ograniczony.
Ponadto za pomocą elementów source
można zabezpieczyć się przed ewentualnym brakiem obsługi określonego formatu grafiki przez przeglądarki. Na przykład:
W tym przypadku przeglądarka wybierze pierwszy format, który obsługuje, a pozostałe zostaną przez nią zignorowane.
Audio i wideo
Do wstawiania treści dźwiękowych i wideo na strony internetowe w HTML5 służą elementy audio
i video
w połączeniu ze znanym nam już elementem source
.
Ich składnia jest bardzo prosta. Spójrz na poniższe dwa przykłady:
Zarówno elementowi audio
, jak i video
nadaliśmy atrybut controls
, który powoduje pojawienie się przycisków odtwarzacza, bez których byłby on niewidoczny.
Ponadto elementy source
mają atrybut src
określający adres i atrybut type
określający typ MIME pliku multimedialnego.
Podobnie jak element picture
, elementy video
i audio
mogą zawierać dowolną liczbę elementów source
, wskazujących na przykład pliki w różnych formatach jako zabezpieczenie przed brakiem obsługi któregoś z nich przez przeglądarkę.
Na końcu znajduje się treść tekstowa, która zostanie wyświetlona w przeglądarkach nieobsługujących elementów video
i audio
.
Z kolei element track
określa napisy do pliku multimedialnego – może być użyty zarówno w elemencie audio
, jak i video
. Znaczenie jego atrybutów jest następujące:
src
– adres pliku z napisamikind
– rodzaj ścieżki tekstowejsrclang
– język pliku z napisamilabel
– etykieta widoczna dla użytkownika
O wszystkich opisanych tu elementach można powiedzieć sporo więcej. Szczegółowe informacje znajdziesz na stronach, do których prowadzą łącza w ich nazwach.
Elementy skryptowe
Kolejną i ostatnią już kategorią elementów HTML5, którą słabo poznaliśmy do tej pory, są elementy skryptowe.
Znamy element script
, służący do wstawiania skryptów na strony, ale oprócz niego istnieje jeszcze kilka innych elementów zaliczających się do tej samej kategorii. Poniższa tabela zawiera zestawienie wszystkich elementów skryptowych HTML5.
Element | Opis |
---|---|
canvas | Powierzchnia do rysowania za pomocą JavaScriptu wykresów, grafik, gier itp. w locie |
noscript | Zawiera treść, która ma zostać użyta, kiedy przeglądarka nie obsługuje skryptów |
script | Zawiera skrypty |
slot | Element technologii o nazwie Web Components, który reprezentuje miejsce do wstawienia własnego kodu przez użytkownika |
template | Zawiera kod HTML, który może być załadowany i odpowiednio przetworzony przez JavaScript już po wczytaniu strony |
Podsumowanie
Teraz znasz już wszystkie elementy HTML5. Najważniejsze znasz całkiem dokładnie, a rzadziej używane znasz pobieżnie, ale wiesz, gdzie w razie potrzeby szukać dodatkowych informacji. Umiesz też już bardzo sprawnie posługiwać się technologią CSS. Przynajmniej jeśli uważnie przestudiowałeś lub przestudiowałaś wszystkie rozdziały i ćwiczenia…
To jest przedostatni rozdział naszego kursu. Mam nadzieję, że dzięki temu kursowi udało Ci się pokochać technologie HTML i CSS z wzajemnością. W ostatnim rozdziale znajdziesz krótkie podsumowanie zdobytej wiedzy oraz parę wskazówek na temat tego, czego jeszcze warto się nauczyć w dziedzinie tworzenia stron internetowych.