Tekst

W tym rozdziale dowiesz się...

Wyświetlanie

Jakie są podstawowe modele wyświetlania znaczników HTML?

Język HTML przewiduje dwa podstawowe modele wyświetlania treści znaczników:

  1. w bloku - podczas wyświetlania bloku w przeglądarce, automatycznie dodawane są znaki końca linii (linijki przerwy) przed oraz po takim bloku tak, że każdy taki element jest wyświetlany w nowej linii. Generalnie element blokowy może zawierać wewnątrz siebie zwykły tekst, jak również inne elementy blokowe. Został on pomyślany do tworzenia obszerniejszych struktur niż elementy wyświetlane w linii. Wyjątkiem od tej reguły jest akapit, który mimo że stanowi element blokowy, nie może zawierać w sobie dodatkowych bloków - w tym innych akapitów.
  2. w linii - elementy takie są wyświetlane normalnie, tzn. bez dodawania dodatkowych interlinii przed i po (tak jak zwykły tekst). Dwa takie elementy mogą znajdować się w jednej linii - obok siebie. Nie mogą one zawierać w sobie elementów blokowych, ale mogą inne elementy wyświetlane w linii oraz zwykły tekst.

O tym, w jaki sposób wyświetlany jest dany znacznik HTML 4.01, możesz dowiedzieć się w rozdziale: Wykaz elementów.

Najczęściej można jednak odgadnąć to intuicyjnie, np. wydaje się logiczne, że tekst pogrubiony musi być wyświetlany w linii, ponieważ gdyby tak nie było, nie można by pogrubić za jednym razem dwóch oddzielnych wyrazów, znajdujących się w tym samym wierszu tekstu, gdyż wtedy wiersz zostałby przełamany na dwie osobne linijki.

Przykład:

To jest zwykły tekst
To jest blok
To jest zwykły tekst

To jest zwykły tekst

To jest akapit (blok z interlinią - podobnie jak tytuł)

To jest zwykły tekst

To jest zwykły tekst To jest element wyświetlany w linii To jest zwykły tekst

Akapit <P>

W jaki sposób układać tekst na ekranie? Jak dodać nowy akapit? Czym różni się akapit od paragrafu?

<p>...</p>

wyświetlanie: w bloku * 

Akapit jest to część tekstu objęta znacznikami: <p>...</p>. Następujące bezpośrednio po sobie akapity są oddzielone przerwą w tekście (pustą linią). Dzięki umieszczaniu w kolejnych akapitach treści nieco różniącej się tematycznie, strona stanie się bardziej estetyczna oraz czytelniejsza. Jeżeli przed akapitem lub serią akapitów postawimy znak paragrafu § (w kodzie źródłowym reprezentowany przez znak specjalny &sect;) z ewentualnym numerem porządkowym, to taki fragment tekstu nosi nazwę paragraf. Zwykle odnosi się on do przepisów prawnych.

* Akapit (paragraf) jest znacznikiem specyficznym - jest wyświetlany w bloku, ale nie może zawierać innych elementów blokowych (włączając w to inne paragrafy). Może natomiast zawierać zwykły tekst oraz elementy wyświetlane w linii.

Przykład:

To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit... To jest pierwszy akapit...

To jest drugi akapit... To jest drugi akapit... To jest drugi akapit... To jest drugi akapit... To jest drugi akapit... To jest drugi akapit... To jest drugi akapit... To jest drugi akapit... To jest drugi akapit... To jest drugi akapit...

Tytuł <H1, H2, H3, H4, H5, H6>

Jak wstawić tytuł (nagłówek) na stronie WWW? W jaki sposób wyświetlić "dymek narzędziowy" po wskazaniu tekstu myszką

<hn>...</hn>
(n = 1...6)

wyświetlanie: w bloku

Aby nadać tytuł (nagłówek) jakiejś części tekstu (rozdziałowi), możesz użyć tej komendy. Istnieje sześć rzędów tytułów. Najwyższym rzędem jest rząd pierwszy: <h1>...</h1>, a najniższym - szósty: <h6>...</h6>. Tytuł wyższego rzędu jest pisany większą czcionką.

Znaczniki tytułów (nagłówków) nie mogą zawierać elementów blokowych.

Przykład:

Przykład

Prawidłowa kolejność tytułów

Należy dążyć do tego, aby tytuły na stronie były poukładane w odpowiedniej kolejności, odzwierciadlającej podział na działy, rozdziały, podrozdziały, punkty, podpunkty itd. Oznacza to, że każdy element h2 powinien być poprzedzony przynajmniej przez jeden element h1, h3 - przez h2, h4 - przez h3, h5 - przez h4, h6 - przez h5. W innym przypadku mielibyśmy do czynienia z sytuacją podobną do wykazu numerowanego np. od 1.1 zamiast od 1 albo z brakującymi podpunktami, tzn. jak gdyby nastąpiło "przeskoczenie" z punktu nr 1 od razu do 1.1.1 pomijając 1.1.

Przykład:

<h1>1. Dział</h1>
(...)
<h2>1.1. Rozdział</h2>
(...)
<h2>1.2. Rozdział</h2>
(...)
<h3>1.2.1. Podrozdział</h3>
(...)
<h1>2. Dział</h1>
(...)

Dymek narzędziowy

Stosując polecenie: <hn title="Tu podaj opis">...</hn>, możemy wprowadzić opis, który będzie się pojawiał, gdy przesuniemy wskaźnik myszki na dany tytuł. Atrybut ten (title="...") można stosować praktycznie w stosunku do wszystkich znaczników HTML (oprócz: <base>, <basefont>, <head>, <html>, <meta>, <param>, <script>, <title>).

UWAGA!
W treści atrybutu title="..." nie należy używać znaków cudzysłowu. Jeśli musimy to zrobić, należy zamiast nich wpisywać: &quot;

Przykład:

Przykład

Blok <DIV>

Jak zgrupować elementy w blok?

<div>...</div>

wyświetlanie: w bloku

Polecenie to wydziela większy blok tekstu. W odróżnieniu od akapitu, blok może zawierać wewnątrz siebie inne elementy wyświetlane w bloku. Kolejne bloki są oddzielane od siebie znakami nowej linii, ale nie są dodawane linijki przerwy (aby je dodać, należy zastosować znacznik <p>...</p> albo <br>).

Przykład:

To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok... To jest pierwszy blok...
To jest drugi blok... To jest drugi blok... To jest drugi blok... To jest drugi blok... To jest drugi blok... To jest drugi blok... To jest drugi blok... To jest drugi blok... To jest drugi blok... To jest drugi blok...

Koniec linii <BR>

W jaki sposób przenieść tekst do następnej linijki w dokumencie HTML?

<br>

Jest to bardzo przydatny znacznik. Używamy go, gdy chcemy natychmiast zakończyć linię i przejść do następnej (wszystkie normalne znaki końca liniii są ignorowane przez przeglądarkę).

Przykład:

Tu jest pierwsza linia<br>
Tu jest druga linia...<br><br><br>


...a tu następna.

Pogrubienie <B>

W jaki sposób pogrubić (wytłuścić) tekst na stronie WWW?

<b>...</b>

wyświetlanie: w linii

Znacznik ten pozwala pogrubić (wytłuścić) część tekstu (ang. "bold"). Oznacza on treść, na którą należy zwrócić uwagę z powodów czysto użytkowych. Nie nadaje dodatkowej ważności treści ani nie stawia akcentu wypowiedzi. Przydatne przy oznaczaniu słów kluczowych w tekście albo wprowadzenia na początku artykułu.

Przykład:

Ten tekst jest pogrubiony (wytłuszczony)

Pochylenie <I>

W jaki sposób pochylić tekst na stronie WWW (kursywa)?

<i>...</i>

wyświetlanie: w linii

Pozwala napisać tekst pismem pochylonym, czyli kursywą (ang. "italic"). Oznacza np. termin techniczny, idiom z innego języka albo fragment wtrąconego tekstu.

Przykład:

Ten tekst jest napisany pismem pochylonym, czyli kursywą

Podkreślenie <U>

W jaki sposób podkreślić tekst na stronie WWW?

<u>...</u>

wyświetlanie: w linii

Pozwala podkreślić fragment tekstu (ang. "underline"). Oznacza nieartykułowany tekst albo oznaczenie błędu ortograficznego.

Przykład:

Ten tekst jest podkreślony

Stosując pewną "sztuczkę", można sprawić, aby kolor linii podkreślenia różnił się od koloru tekstu (nie obsługuje MSIE 5.0):

<u style="color: red"><span style="color: black">To jest czarne podkreślenie czerwoną linią</span></u>
gdzie w miejsce wyróżnionych wyrazów należy wpisać definicje kolorów; przy czym "red" oznacza kolor, jaki ma przyjąć linia podkreślenia, natomiast "black" - kolor tekstu.

Przykład:

To jest czarne podkreślenie czerwoną linią

Przekreślenie <S>

W jaki sposób przekreślić tekst na stronie WWW?

<s>...</s>

wyświetlanie: w linii

Pozwala przekreślić część tekstu. Oznacza treść, która nie jest dłużej trafna lub istotna, z punktu widzenia pozostałej zawartości dokumentu.

Przykład:

Ten tekst jest przekreślony

Stosując pewną "sztuczkę", można sprawić, aby kolor linii przekreślenia różnił się od koloru tekstu (nie obsługuje MSIE 5.0):

<s style="color: red"><span style="color: black">To jest czarne przekreślenie czerwoną linią</span></s>
gdzie w miejsce wyróżnionych wyrazów należy wpisać definicje kolorów; przy czym "red" oznacza kolor, jaki ma przyjąć linia przekreślenia, natomiast "black" - kolor tekstu.

Przykład:

To jest czarne przekreślenie czerwoną linią

Wyróżnienie <EM, STRONG>

Jak wyróżnić tekst na ekranie (emfaza)?

wyświetlanie: w linii

  1. Emfaza
    <em>...</em>
  2. Wysoka ważność
    <strong>...</strong>

Pozwala wyróżnić dowolny tekst (tzw. emfaza), aby podkreślić jego znaczenie. Pierwsze polecenie zwykle wyświetla tekst napisany kursywą, natomiast drugie - pogrubiony. Różnią się one jednak od zwykłego wytłuszczenia i kursywy tym, że dodatkowo niosą ze sobą pewne informacje co do ważności tekstu. W sytuacjach kiedy szczególnie zależy nam na zwróceniu uwagi czytelnika na jakieś informacje, a nie jedynie na określonym sformatowaniu czcionki, powinniśmy użyć właśnie przedstawionych powyżej znaczników.

Przykład:

<em>To jest tekst wyróżniony</em>

<strong>To jest tekst o wysokiej ważności</strong>

Indeks górny i dolny <SUP, SUB>

Jak wstawić indeks górny i dolny przy tekście?

wyświetlanie: w linii

  1. Indeks górny
    <sup>...</sup>
  2. Indeks dolny
    <sub>...</sub>

Umożliwia wprowadzenie indeksów (górnych lub dolnych) przy cyfrach i literach.

Przykład:

indeks<sup>górny</sup>

indeks<sub>dolny</sub>

Czcionka pomniejszona <SMALL>

W jaki sposób pomniejszyć tekst?

<small>...</small>

wyświetlanie: w linii

Wprowadza tekst napisany pomniejszoną czcionką. Reprezentuje przypisy (wyjaśnienia, zastrzeżenia, ograniczenia prawne, prawa autorskie).

Wpisując powyższe znaczniki (tego samego rodzaju) jeden wewnątrz drugiego (np.: <small><small>...</small></small>), można zmniejszyć rozmiar tekstu o kilka wielkości.

Przykład:

To jest zwykły tekst... a ten tekst jest napisany czcionką pomniejszoną (small)

Tekst preformatowany <PRE>

Jak wprowadzić tekst preformatowany, czyli taki, który wygląda identycznie jak w edytorze tekstowym?

<pre>...</pre>

wyświetlanie: w bloku

Wprowadza tekst preformatowany, czyli napisany czcionką monotypiczną (o stałej szerokości znaku), który uwzględnia dodatkowe spacje, tabulację i znaki końca linii (nie trzeba stosować znaczników <br>) oraz nie jest automatycznie zawijany. Dzięki niemu możesz np. wkleić na stronę WWW tekst, wprost ze zwykłego edytora, bez stosowania dodatkowych znaczników (niestety informacje dotyczące formatowania zostaną pominięte). Należy jednak przy tym pamiętać, aby tekst nie zawierał znaków: "<" oraz ">" (w zamian używaj: &lt; i &gt;).

Znacznik tekstu preformatowanego nie może zawierać elementów blokowych ani: IMG, OBJECT, BIG, SMALL, SUB, SUP.

Przykład:

Ten tekst jest preformatowny
dlatego możemy używać
	tabulatora,
dodatkowych         spacji
oraz znaków końca linii.

Kod komputerowy <CODE>

Jak oznaczyć kod komputerowy?

<code>...</code>

wyświetlanie: w linii

Pozwala wprowadzić fragment kodu komputerowego ("wyciąg" z programu lub źródła dokumentu), który jest napisany czcionką monotypiczną (tak jak w przypadku tekstu preformatowanego). Nie uwzględnia on jednak dodatkowych spacji, tabulacji ani znaków końca linii (trzeba używać <br>) oraz jest automatycznie zawijany.

Ponieważ powyższy znacznik nie uznaje znaków końca linii, dodatkowych spacji, a także nie blokuje zawijania tekstu na ekranie, zamiast niego często używa się tekstu preformatowanego.

Przykład:

// Wyświetla bieżącą datę w JavaScript:
var data = new Date();
document.write(data);

Klawiatura <KBD>

Jak oznaczyć tekst, który użytkownik powinien wprowadzić z klawiatury?

<kbd>...</kbd>

wyświetlanie: w linii

Wprowadza na ekran tekst, wskazując, że użytkownik powinien wprowadzić go z klawiatury. Zwykle formatowanie tego elementu jest identyczne jak w przypadku kodu komputerowego.

Przykład:

Dla strony głównej serwisu internetowego należy utworzyć plik i nadać mu nazwę: <kbd>index.html</kbd>

Przykład <SAMP>

Jak oznaczyć tekst, będący przykładem działania programu lub skryptu?

<samp>...</samp>

wyświetlanie: w linii

Pozwala wprowadzić do dokumentu tekst, będący przykładem wyniku wygenerowanego przez program, skrypt itp. Zwykle działa analogicznie jak <code>.

Przykład:

<samp>To jest przykład użycia znacznika "samp"</samp>

Zmienna <VAR>

Jak oznaczyć zmienną lub argument programu?

<var>...</var>

wyświetlanie: w linii

Wprowadza na ekran zmienną (matematyczną lub języka programowania), która zostaje wyróżniona, najczęściej poprzez pochylenie tekstu.

Przykład:

zmienna = a + 2b + 3

Cytat <CITE, Q>

Jak powinno się wprowadzać cytaty i odniesienia do źródła?

wyświetlanie: w linii

  1. Odniesienie do źródła
    <cite>...</cite>

    Zwykle jest napisany kursywą. Można w nim umieścić np. tytuł książki, opracowania, wiersza, piosenki, filmu, gry komputerowej czy obrazu, do którego się odnosimy, ale nie sam cytat.

  2. Krótki cytat
    <q>...</q>

    Przeglądarki zwykle automatycznie ujmują tekst tego znacznika w znaki cudzysłowu (Internet Explorer 7.0 ani wcześniejsze wersje tego nie robią, natomiast w MSIE 8.0 wszystko jest już w porządku, ale tylko w trybie Standards Compliance), dlatego nie należy wstawiać dodatkowych cudzysłowów ręcznie. Umieszcza się w nim treść krótkich cytatów, które nie zawierają żadnych akapitów. Jeśli chcemy zacytować dłuższy fragment tekstu z kilkoma paragrafami, powinniśmy wykorzystać znacznik <blockquote>...</blockquote>.

Przykład:

<cite>Albert Einstein</cite> powiedział:
<q>Dwie rzeczy nie mają granic: wszechświat i ludzka głupota.</q>

Albert Einstein powiedział: Dwie rzeczy nie mają granic: wszechświat i ludzka głupota.

Więcej informacji znajduje się w opracowaniu
<cite>[HTML 4.01 Specification]</cite>

Więcej informacji znajduje się w opracowaniu [HTML 4.01 Specification]

Blok cytowany <BLOCKQUOTE>

Jak wprowadzić dłuższy cytat?

<blockquote>...</blockquote>

wyświetlanie: w bloku

Wprowadza blok cytowany, którego możemy użyć np. gdy powołujemy się na jakieś źródła. Każdy wiersz w bloku cytowanym rozpoczyna się zwykle tabulatorem (wcięciem). Można go używać do zacytowania jakiegoś większego fragmentu, który ciągnie się przez wiele linijek. (zobacz także: Cytat).

UWAGA!
W Strict DTD tekst zawarty w bloku cytowanym, powinien być objęty również innym znacznikiem blokowym, jak np. paragrafem (<blockquote><p>...</p></blockquote>).

Przykład:

To jest blok cytowany.
Używamy go gdy powołujemy się na jakieś źródła, cytujemy czyjąś wypowiedź...
Wszystkie wiersze w tym bloku rozpoczynają się tabulatorem.


Korzystając z atrybutu cite="...", można podać adres źródła, które cytujemy:

<blockquote cite="http://www.w3.org/">
<p>The World Wide Web Consortium (W3C) develops interoperable technologies (specifications, guidelines, software, and tools) to lead the Web to its full potential. W3C is a forum for information, commerce, communication, and collective understanding.</p>
</blockquote>

Adres <ADDRESS>

Jak umieścić na stronie WWW informacje kontatkowe z autorem?

<address>...</address>

wyświetlanie: w bloku

Wprowadza blok informacji kontaktowych z autorem. Może to być np. adres e-mail lub zwykły adres pocztowy - o ile należy do autora artykułu. Nie należy stosować tego elementu do tworzenia listy adresów w formie książki adresowej.

Blok taki nie uwzględnia tabulatorów, dodatkowych spacji ani znaków końca linii. W przeglądarkach najczęściej jest automatycznie napisany czcionką pochyłą.

Przykład:

Autor: Jan Kowalski
jan.kowalski@example.com

Zmiany <INS, DEL>

Jak poinformować użytkownika o wprowadzonych zmianach na stronie WWW: elementy wstawione i usunięte?

  1. Treść wstawiona
    <ins>opis</ins>
  2. Treść usunięta
    <del>opis</del>

Pozwala podać informację o wprowadzonych na stronie zmianach. Jeśli ostatnio dodane zostały jakieś nowe rozdziały, aby o tym zakomunikować, opis tych zmian można wpisać do znacznika <ins> (taki tekst może zostać automatycznie podkreślony). Natomiast do znacznika <del> wpisujemy opis usuniętych rozdziałów, które nie są już dostępne (zwykle tekst przekreślony).

Przykład:

W tym tygodniu został dodany rozdział, dotyczący obliczania przybliżonych rozwiązań równań różniczkowych metodą Runge-Kutty drugiego rzędu ;-)

Rozdział o trójwymiarowych całkach krzywoliniowych, nie jest już dostępny ;-)

Skrót <ABBR>

Jak powinno się oznaczać skróty i akronimy?

wyświetlanie: w linii

<abbr>...</abbr>

Znacznik ten pozwala oznaczyć wpisaną formę skróconą jak np.: "inż.", "prof.". Obejmuje to również tzw. akronimy (skrótowce), czyli wyraz utworzony z pierwszych liter lub pierwszych zgłosek (najczęściej sylab) kilku wyrazów będących zwykle jakąś nazwą, np.: "WWW" (World Wide Web). Akronim od skrótu najłatwiej można odróżnić po tym, że w języku polskim po skrócie stawiamy kropkę, chyba że kończy się ostatnią literą pełnego wyrazu (jak "nr" - numer). Ponadto skróty raczej nie są tworzone od nazw własnych, a podczas czytania tekstu na głos, zwykle rozwija się je do pełnej formy - inaczej niż akronimy, które najczęściej literujemy (AGD - czyt. a-gie-de), a jeśli zawierają samogłoski pomiędzy spółgłoskami - płynnie odczytujemy, jakby były jednym słowem (OBOP - czyt. obop). Zdarzają się również akronimy grupowe - tzw. sylabowce - składające się zwykle z pierwszych sylab kolejnych słów (Pafawag - czyt. pafawag) oraz mieszane - hybrydowe (PZMot - czyt. pe-zet-mot). Wbrew pojawiającym się czasem opiniom, również HTML jest akronimem.

W obu przypadkach zaleca się podać również pełną formę skrótu przy użyciu atrybutu title="...". Dodatkowo, jeżeli jest to nazwa obcojęzyczna, dobrze jest to oznaczyć, za pomocą atrybutu lang="..." [zobacz: Języki]. Przeglądarki takie jak Opera 12- czy Firefox wyświetlą tego typu skróty podkreślone linią przerywaną, wskazując, że po wskazaniu ich myszką, pojawi się dymek z ich pełnym rozwinięciem (przeglądarka Chrome, MSIE 7.0 ani wcześniejsze wersje niestety tego nie robią, a ponadto do wersji 6.0 - włącznie - dla znacznika <abbr> w ogóle nie wyświetla dymku z opisem).

Przykład:

<abbr title="profesor">prof.</abbr>
<abbr lang="en" title="World Wide Web">WWW</abbr>

prof. WWW

Definicja <DFN>

Jak oznaczyć definicję terminu?

<dfn>...</dfn>

wyświetlanie: w linii

Wprowadza definicję jakiegoś terminu, która zwykle jest napisana kursywą. (zobacz także: Słownik). Znacznikiem tym powinien być objęty tylko definiowany termin, a nie cała treść definicji.

Przykład:

<dfn>Atrybut</dfn> to wartość powiązana z elementem, składająca się z nazwy i związanej wartości (tekstowej).

Słownik <DL, DT, DD>

Jak wprowadzić na stronę WWW słownik (listę definicyjną)?

<dl>
<dt>Pierwszy termin</dt><dd>Definicja pierwszego terminu</dd>
<dt>Drugi termin</dt><dd>Definicja drugiego terminu</dd>
<dt>Trzeci termin</dt><dd>Definicja trzeciego terminu</dd>
</dl>

wyświetlanie: w bloku

Polecenie tworzy tzw. listę opisową, która jest przydatna, gdy piszemy słownik, w którym znajdują się pewne wyrazy i ich objaśnienia. Objaśnienia są zwykle przesunięte bardziej w prawo, dzięki czemu lista staje się czytelniejsza. (Zobacz także: Definicja).

Zwracam uwagę, że w obrębie słownika tekst i inne elementy można wstawiać tylko wewnątrz znaczników terminów i definicji, a nie poza nimi! Zatem poniższy kod będzie nieprawidłowy:

<dl>
Słownik...
<dt>Termin</dt>
<br>
<dd>Definicja</dd>
<br>
</dl>

Termin definicji (DT) nie może zawierać elementów blokowych.

Przykład:

Atrybut
Wartość powiązana z elementem, składająca się z nazwy i związanej wartości (tekstowej).
HTML (Hypertext Markup Language)
Język znacznikowy służący do tworzenia stron WWW.
Zawartość
Treść związana z elementem w dokumencie źródłowym.

Możliwe jest również tworzenie słownika, w którym pojedyncze pojęcia mają kilka znaczeń albo kilka pojęć oznacza to samo:

Zamek
Urządzenie do zamykania drzwi za pomocą klucza.
Zapięcie wszywane do odzieży.
Warowna budowla mieszkalna.
Auto
Samochód
Dwuśladowy pojazd mechaniczny napędzany silnikiem.
<dl>
<dt>Zamek</dt>
<dd>Urządzenie do zamykania drzwi za pomocą klucza.</dd>
<dd>Zapięcie wszywane do odzieży.</dd>
<dd>Warowna budowla mieszkalna.</dd>
<dt>Auto</dt>
<dt>Samochód</dt>
<dd>Dwuśladowy pojazd mechaniczny napędzany silnikiem.</dd>
</dl>

Wykaz <UL, OL, LI>

Jak wprowadzić na stronę wykaz: wypunktowanie (lista nieuporządkowana) lub numerowanie (lista uporządkowana)?

(lista wyliczeniowa)

wyświetlanie: w bloku

Wypunktowanie (podstawowy) - lista nieuporządkowana

<ul>
<li>Punkt pierwszy</li>
<li>Punkt drugi</li>
<li>Punkt trzeci</li>
</ul>

Zwracam uwagę, że w obrębie wykazu tekst i inne elementy można wstawiać tylko wewnątrz znaczników punktów wykazu, a nie poza nimi! Zatem poniższy kod będzie nieprawidłowy:

<ul>
Wykaz...
<li>Punkt pierwszy</li>
<br>
<li>Punkt drugi</li>
<br>
</ul>

Przykład:

  • Punkt pierwszy
  • Punkt drugi
  • Punkt trzeci

Wykaz numerowany (podstawowy) - lista uporządkowana

<ol>
<li>Punkt pierwszy</li>
<li>Punkt drugi</li>
<li>Punkt trzeci</li>
</ol>

Przykład:

  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci

Wykaz numerowany - różne typy

<ol type="rodzaj numeracji">
<li>Punkt pierwszy</li>
<li>Punkt drugi</li>
<li>Punkt trzeci</li>
</ol>
gdzie jako "rodzaj numeracji" należy podać:
  • "1" (domyślny) - numeracja według liczb arabskich
  • "I" - według dużych liczb rzymskich
  • "i" - według małych liczb rzymskich
  • "a" - według małych liter
  • "A" - według dużych liter

Przykład:

<ol type="1"> (domyślny)

  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci

<ol type="I">

  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci

<ol type="i">

  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci

<ol type="A">

  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci

<ol type="a">

  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci

Wykaz numerowany z podaniem początkowego numeru

<ol start="n">
<li>Punkt pierwszy</li>
<li>Punkt drugi</li>
<li>Punkt trzeci</li>
</ol>
gdzie jako "n" należy podać liczbę, od której ma się rozpocząć numerowanie.

Wartość atrybutu START zawsze musi być liczbą, nawet jeśli numerowanie następuje według liter!

Przykład:

Przykład

Zmiana numerowania "w trakcie"

<ol>
<li>Punkt pierwszy</li>
<li value="n">Punkt drugi</li>
<li>Punkt trzeci</li>
</ol>
gdzie jako "n" należy podać zmieniony numer punktu (następne punkty będą numerowane według zmienionej kolejności).

Wartość atrybutu VALUE zawsze musi być liczbą, nawet jeśli numerowanie następuje według liter!

Przykład:

Przykład

Edytory HTML posiadają często specjalny generator wykazów, który może ułatwić pracę.


Stosując pewną "sztuczkę", można uzyskać wykaz, którego wyróżniki (markery) będą miały inny kolor niż reszta tekstu:

<ul style="color: red">
<li><span style="color: black">Punkt pierwszy</span></li>
<li><span style="color: black">Punkt drugi</span></li>
<li><span style="color: black">Punkt trzeci</span></li>
</ul>
gdzie w miejsce wyróżnionych wyrazów należy wpisać definicje kolorów, przy czym "red" oznacza kolor, jaki mają przyjąć wyrózniki, natomiast "black" - kolor tekstu.
  • Punkt pierwszy
  • Punkt drugi
  • Punkt trzeci

Dotyczy to wszystkich typów wykazu:

  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci
  1. Punkt pierwszy
  2. Punkt drugi
  3. Punkt trzeci

Możliwe jest również określenie innego koloru dla każdego punktu wykazu:

<ul>
<li style="color: red"><span style="color: black">Punkt pierwszy</span></li>
<li style="color: green"><span style="color: black">Punkt drugi</span></li>
<li style="color: blue"><span style="color: black">Punkt trzeci</span></li>
</ul>
  • Punkt pierwszy
  • Punkt drugi
  • Punkt trzeci

Na koniec ważna wskazówka. Często może się zdarzyć tak, że chcemy umieścić wykaz wewnątrz akapitu. Efekt będzie prawdopodobnie inny niż oczekiwaliśmy. Akapit nie jest zwykłym elementem blokowym, ponieważ nie może zawierać innych elementów blokowych (m.in. wykazów). Zakończy się on po napotkaniu pierwszego elementu blokowego, nawet przed znacznikiem zamykającym </p>. W języku HTML nie jest to błąd, natomiast w XHTML już tak.

Przykład:

Po wpisaniu:

<p style="text-align: center">
Tu rozpoczyna się akapit...
<ul>
<li>Punkt pierwszy wykazu</li>
<li>Punkt drugi wykazu...</li>
</ul>
...tu powinien skończyć się akapit.
</p>

otrzymamy:

Tu rozpoczyna się akapit...

  • Punkt pierwszy wykazu
  • Punkt drugi wykazu...

...tu powinien skończyć się akapit.

Jak widać akapit zakończył się przed wykazem, ponieważ ostatnia linijka nie została ustawiona na środku (tak jak pierwsza). Aby to zmienić, należy rozpocząć nowy akapit tuż za wykazem i określić dla niego odpowiednie atrybuty lub ewentualnie zamiast akapitu użyć bloku.

Zagnieżdżanie wykazów

W jaki sposób zrobić listę punków i podpunktów (wykaz)?

  1. Wypunktowanie (podstawowy)
    <ul>
    <li>Punkt pierwszy
    	<ul>
    	<li>Punkt 1.1
    		<ul>
    		<li>Punkt 1.1.1</li>
    		<li>Punkt 1.1.2</li>
    		</ul>
    	</li>
    	<li>Punkt 1.2</li>
    	</ul>
    </li>
    <li>Punkt drugi</li>
    </ul>
  2. Numerowanie
    <ol>
    <li>Punkt pierwszy
    	<ol>
    	<li>Punkt 1.1
    		<ol>
    		<li>Punkt 1.1.1</li>
    		<li>Punkt 1.1.2</li>
    		</ol>
    	</li>
    	<li>Punkt 1.2</li>
    	</ol>
    </li>
    <li>Punkt drugi</li>
    </ol>
  3. Wykaz mieszany - połączenie obu powyższych
We wszystkich przypadkach kolorem czerwonym zaznaczono wykaz nadrzędny (główny), zielonym - wykaz pierwszego stopnia zagnieżdżenia (podrzędny), natomiast niebieskim - drugiego stopnia zagnieżdżenia (najbardziej podrzędny).
Możliwe jest oczywiście dalsze zagnieżdżanie oraz mieszanie typów wykazów(wykaz mieszany).

Dzięki możliwości zagnieżdżania wykazów, można stworzyć listę punktów wraz z podpunktami. Podpunkty będą przesunięte bardziej w prawo w stosunku do punktów nadrzędnych, dzięki czemu wykaz będzie wyglądał bardziej czytelnie i estetycznie.

Zauważ, że w składni powyższych poleceń, wykazy bardziej zagnieżdżone są przesunięte w prawo - im bardziej podrzędny wykaz, tym większe jest wcięcie. Nie jest to konieczne, ale bardzo ułatwia zorientowanie się, na którym stopniu zagnieżdżenia aktualnie jesteśmy. Dlatego polecam używanie takiego sposobu wpisywania. Dobrze jest również na samym początku zamykać wszystkie znaczniki <ul>, <ol> oraz <li> (większość edytorów HTML i tak robi to automatycznie), a dopiero potem wpisywać do nich wykazy podrzędne. Dzięki temu unikniemy błędnego wyświetlania, spowodowanego zapomnieniem zamknięcia znacznika.

Kod wykazów podrzędnych wpisuje się wewnątrz znacznika <li>...</li> wybranego punku wykazu nadrzędnego. Pomiędzy dwoma punktami wykazu, tzn. między znacznikami </li> a <li> nie można się znaleźć żaden kod ani tekst, ponieważ jest to błędem!

Przykład:

Wypunktowanie:

  • Punkt pierwszy
    • Punkt 1.1
      • Punkt 1.1.1
      • Punkt 1.1.2
    • Punkt 1.2
  • Punkt drugi

Numerowanie:

  1. Punkt pierwszy
    1. Punkt 1.1
      1. Punkt 1.1.1
      2. Punkt 1.1.2
    2. Punkt 1.2
  2. Punkt drugi

Wykaz mieszany:

  1. Punkt pierwszy
    1. Punkt I.1
      1. Punkt I.1.a
        • Punkt I.1.a.(1)
        • Punkt I.1.a.(2)
      2. Punkt I.1.b
    2. Punkt I.2
  2. Punkt drugi

A oto co należy wpisać, aby otrzymać ostatni wykaz:

<ol type="I">
<li>Punkt pierwszy
	<ol type="1">
	<li>Punkt I.1
		<ol type="a">
		<li>Punkt I.1.a
			<ul>
			<li>Punkt I.1.a.(1)</li>
			<li>Punkt I.1.a.(2)</li>
			</ul>
		</li>
		<li>Punkt I.1.b</li>
		</ol>
	</li>
	<li>Punkt I.2</li>
	</ol>
</li>
<li>Punkt drugi</li>
</ol>

Pozioma linia <HR>

Jak umieścić poziomą linię, oddzielającą sąsiednie akapity?

<hr>

Polecenie to pozwala narysować na ekranie poziomą linię. Może ona np. rozdzielać kolejne rozdziały, które różnią się tematycznie, przez co strona staje się bardziej czytelna i przejrzysta.

Wygląd poziomej linii może się różnić w zależności od przeglądarki.

Przykład:

Przykład

Komentarz

W jaki sposób ukryć przed użytkownikiem wybrany tekst?

<!-- Treść komentarza -->

Często zdarza się, że autor dla swojej wygody chciałby umieścić na stronie pewien tekst, który nie będzie widoczny dla normalnych użytkowników. Dzięki temu mógłby zaznaczyć ważne elementy strony lub wprowadzić inne informacje, które nie muszą być wyświetlane na ekranie, ponieważ mogłyby spowodować zaciemnienie właściwej treści.

Do wprowadzenia tekstu, który jest niewidoczny na ekranie, ale istnieje w źródle dokumentu, służy właśnie komentarz. Cały tekst który zostanie do niego wpisany będzie zignorowany przez przeglądarkę, ale może przechowywać ważne informacje dla autora strony (np. prawa autorskie). Oczywiście wewnątrz komentarza zwykłe znaczniki nie są interpretowane (chociaż można je tam wpisać). Komentarz może być wieloliniowy tzn., że może ciągnąć się przez wiele linijek, np.:

<!-- Ten tekst
zostanie zignorowany
przez przeglądarkę -->
Komentarzy nie można zagnieżdżać (umieszczać jeden wewnątrz drugiego), tzn. niedozwolona jest konstrukcja:
<!-- zewnętrzny <!-- komentarz wewnętrzny --> zewnętrzny -->
nawet jeśli komentarze znajdują się w wielu linijkach.

Częstym zastosowaniem komentarza jest również objęcie nim bloku kodu (razem ze znacznikami), który zdecydowaliśmy się chwilowo usunąć ze strony, ale zamierzamy go jeszcze kiedyś (niedługo) wykorzystać. Zaletą takiego sposobu, w stosunku do zwyczajnego usunięcia tekstu z kodu źródłowego strony, jest to, że za jakiś czas możemy ponownie wstawić taki fragment, usuwając tylko znaki komentarza - nie musimy wtedy wpisywać całego kodu od początku:

<!--<p>
Ten fragment pokazuje przykład,
w jaki sposób można używać <b>komentarz HTML</b>...
</p>-->

Należy jednak pamiętać, aby nie obejmować w ten sposób przesadnie długich fragmentów strony, ponieważ niezależnie od tego, że nie są one widoczne na ekranie, to nadal figurują w kodzie źródłowym i spowalniają wczytywanie. Nie są natomiast wczytywane obrazki i inne osadzone pliki. Ponadto trzeba uważać, aby wybrany fragment nie zawierał wstawionych wcześniej komentarzy, ponieważ spowodowałoby to zagnieżdżenie, co jest niedozwolone:

<!--<p>
Ten fragment pokazuje przykład,
w jaki sposób nie można używać <b>komentarza HTML</b>...
<!-- Ten komentarz jest niedozwolony -->
Ciąg dalszy...
</p>-->

Kod poprawny semantycznie

Co to znaczy, że kod HTML jest poprawny semantycznie i dlaczego jest to takie ważne?

Patrząc na liczbę znaczników, służących do formatowania tekstu na ekranie przeglądarki internetowej, można się zastanawiać: po co jest ich aż tyle? Jaki był sens wprowadzania znacznika <strong>...</strong> (mocne wyróżnienie), skoro właściwie zwykle jest on wyświetlany tak samo jak <b>...</b> (pogrubienie)? Czy nie lepiej tworzyć akapity za pomocą podwójnych znaczników <br> zamiast <p>...</p>? Czy to aby nie jest pomyłka organizacji W3C, że wprowadzono znacznik <h1>...</h1> (tytuł rozdziału), skoro ten sam efekt można uzyskać dobierając odpowiedni rozmiar czcionki?

Otóż na pewno nie jest to pomyłka. W języku HTML wyróżniamy dwa podstawowe typy elementów określających atrybuty tekstu:

  1. Znaczniki formatujące - mają za zadanie tylko i wyłącznie zmienić wygląd tekstu, który obejmują, bez żadnego odniesienia do znaczenia tego tekstu. Są to np.: B (pogrubienie), I (pochylenie), U (podkreślenie), S i STRIKE (przekreślenie), SMALL (czcionka pomniejszona). Użycie tych znaczników gwarantuje, że w każdej sytuacji tekst otrzyma określone formatowanie (wygląd), ale nic nie mówi o charakterze tego tekstu. Innymi słowy: nie wiemy, czy tekst jest pogrubiony dlatego, że zawiera ważny termin, który powinien się wyróżniać, czy może dlatego, że autor strony chciał w tym miejscu po prostu wprowadzić czcionkę pogrubioną, bo akurat dobrze komponuje się z innymi elementami strony.
  2. Znaczniki semantyczne - określają charakter (znaczenie) tekstu, który obejmują. Zwykle niosą ze sobą również odpowiednie formatowanie, ale nie jest to wymagane. Są to np.: Hn (tytuł), STRONG (mocne wyróżnienie), EM (emfaza), CODE (kod komputerowy), KBD (klawiatura), SAMP (przykład), VAR (zmienna), Q (cytat), CITE (odniesienie do źródła), BLOCKQUOTE (blok cytowany), ADDRESS (adres), INS i DEL (zmiany), ABBR (skrót), DFN (definicja). Nie ma żadnej pewności, w jaki sposób zostaną wyświetlone na ekranie te elementy. Co prawda zwykle np. znacznik <strong>...</strong> jest pogrubiony, ale nic nie stoi na przeszkodzie, aby jakaś specjalna przeglądarka wyświetliła go normalnie, a jedynie ze zmienionym na czerwono kolorem.

W przypadku znaczników semantycznych to nie sposób formatowania jest najważniejszy, ale informacje jakie ze sobą niosą. Element <strong>...</strong> wskazuje, że objęty nimi tekst jest bardzo ważny. <code>...</code> daje do zrozumienia, że jest to fragment kodu komputerowego - np. jakiegoś programu. <abbr>...</abbr> to wspólnie z <q>...</q> i <cite>...</cite> jedne z najbardziej "niedocenianych" znaczników. Tymczasem niosą ze sobą niezwykle ważne informacje.

Komu to jest potrzebne?

Z informacji niesionej przez znaczniki semantyczne korzystają zwykłe przeglądarki internetowe, wyróżniając je w specjalny, właściwy sobie sposób.

Znaczniki semantyczne mają ogromne znaczenie dla syntezatorów mowy, czyli specjalnych przeglądarek, które odczytują treść stron WWW na głos. Używane są najczęściej przez osoby niewidome. Taka osoba nie zobaczy koloru czcionki i nie będzie wiedzieć, że gdzieś tekst został wytłuszczony w tradycyjny sposób. Natomiast używany syntezator mowy, kiedy natrafi na znacznik <strong>...</strong>, może specjalnie podkreślić tonem głosu zawarty w nim tekst. Wprost nieocenioną pomocą dla syntezatorów mowy są znaczniki akronimów i skrótów. Aplikacje takie mają zwykle wbudowaną bazę najpopularniejszych skrótów i akronimów, a więc kiedy na nie natrafią, mogą odczytać ich pełną nazwę, a nie literować. Oczywiście najpierw trzeba poinformować syntezator, że dany wyraz jest skrótem lub akronimem, a nie jakąś specjalną nazwą, którą używasz w swoim tekście. Jeżeli używasz skrótów lub akronimów, które są dość mało znane, zalecane jest dodanie atrybutu title="...", w którym można umieścić pełne rozwinięcie nazwy. Wyeliminuje to konieczność domyślania się rozwinięcia przez syntezator i ewentualnych pomyłek (jeden akronim może mieć zupełnie różne rozwinięcia w różnych dziedzinach wiedzy).

Jeżeli nie sądzisz, aby Twoja strona mogła być kiedykolwiek odwiedzona przez osobę niewidomą (nigdy tego nie zakładaj, bo możesz się bardzo zdziwić!), na pewno nie możesz zlekceważyć, że właściwe oznaczanie tekstu za pomocą znaczników semantycznych ma niebagatelne znaczenie dla robotów wyszukiwarek sieciowych. Są to aplikacje, które przez cały czas szukają nowych stron w Internecie i sprawdzają, czy stare się nie zmieniły. Za pomocą specjalnego algorytmu informatycznego przetwarzającego treść odwiedzanych stron, zapisują linki do nich w bazie danych przyporządkowując je do odpowiednich słów kluczowych (haseł). Z tej bazy danych korzystają następnie wyszukiwarki sieciowe, takie jak Google, kiedy użytkownicy przeszukują Internet za ich pośrednictwem. Aby serwis WWW mógł być popularny, konieczne jest takie zbudowanie treści, aby była ona przyjazna dla robotów wyszukiwarek, ponieważ inaczej trudno go będzie komukolwiek odszukać. Może to zabrzmi dziwnie, ale można powiedzieć, że roboty wyszukiwarek są "niewidome"! Dlatego na pewno docenią, że chcesz im pomóc w prawidłowym zaindeksowaniu (zapisaniu informacji o stronie w bazie danych) swojej strony. Mogą się odwdzięczyć oczywiście wyższą pozycją na liście wyszukiwania, co bezpośrednio wpłynie na popularność serwisu WWW.

Dla robotów wyszukiwarek sieciowych nie jest obojętne, czy do oznaczania tytułów rozdziałów użyjesz znaczników <h1>...</h1> - <h6>...</h6>, czy może <font size="7">...</font> - <font size="1">...</font>. Nikt rozsądny nie wpisuje w znacznikach tytułu tekstu, który nie ma nic wspólnego z zawartością rozdziału, co może mieć miejsce dla elementu FONT. Tak na marginesie: wiele osób próbuje oszukać wyszukiwarki, umieszczając na stronie tytuły w taki sposób: <h1><font size="1">...</font></h1>. Powoduje to wstawienie tytułu pierwszego rzędu (czyli najważniejszego dla wyszukiwarek) miniaturową czcionką. W tym przypadku efekt jednak może być odwrotny, ponieważ wyszukiwarki już dawno uodporniły się na takie sztuczki. W skrajnym przypadku taka strona może zostać zupełnie usunięta z wyszukiwarki!

Podsumowanie

Zrozumienie istoty poprawności semantycznej kodu HTML jest niezwykle ważne. Niejednokrotnie można w ten sposób odróżnić osobę doświadczoną od nowicjusza. Stosuj znaczniki formatujące tylko wtedy, gdy obejmowany nimi tekst nie niesie ze sobą jakiegoś specjalnego znaczenia, a zależy Ci natomiast na tym, aby w każdych warunkach był wyświetlony tak, jak to przewidziałeś. Znaczniki semantyczne należy używać wszędzie tam, gdzie chcemy wskazać specjalne znaczenie obejmowanego nimi tekstu i jest to dla nas ważniejsze, niż jednoznaczne określenie jego wyglądu. Szczególnie przyswój sobie przeznaczenie następujących znaczników: Hn (tytuł), STRONG (mocne wyróżnienie), EM (emfaza), Q (cytat), CITE (odniesienie do źródła), BLOCKQUOTE (blok cytowany), ABBR (skrót).

Quiz

Sprawdź swoją wiedzę, nabytą w tym rozdziale, rozwiązując testowy QUIZ (online).