Zeszłego lata przeczytałem pełną specyfikację HTML5 i każdą poprzednią specyfikację HTML (nawet te porzucone), wszystkie specyfikacje CSS, które mogłem znaleźć, i wiele specyfikacji XML. Ponieważ uwielbiam semantycznie bogate dokumenty hipertekstowe, pozwól, że przedstawię ci ideę odpowiedniej semantyki HTML w HTML5.
Przed HTML5
Przed HTML5 i
i b
rzeczywiście były modne. Powodem było to, że zasadniczo działali jak em
i strong
odpowiednio, ale z naciskiem na prezentację, a nie na semantykę (co jest złe).
Rzeczywiście i
oznaczało to, że tekst powinien być pisany kursywą (mówił coś o tym, jak tekst powinien być renderowany na ekranie). Z drugiej strony em
oznaczało, że należy podkreślić tekst (mówiło coś o semantyce tekstu).
Istnieje tutaj ważna różnica teoretyczna. Jeśli używasz em
, agent użytkownika (= przeglądarka) wie, że tekst powinien być wyróżniony, więc może renderować go kursywą, jeśli dokument jest wyświetlany na ekranie (lub wielkimi literami, jeśli formatowanie nie jest możliwe, a może nawet pogrubioną czcionką jest użytkownik woli), może wymówić to inaczej, jeśli dokument zostanie przekazany użytkownikowi itp.
Zauważ, że tak naprawdę nacisk kładziony jest na semantykę. Na przykład frazy
- Kot jest mój. (= nie pies!)
- Kot jest mój . (= nie twoje!)
nie mają tego samego znaczenia.
Ta sama różnica dotyczy b
(czcionka pogrubiona) i strong
(duży nacisk).
Ogólna zasada pisania cyfrowego, aw szczególności tworzenia hipertekstu, polega na oddzieleniu treści i stylu. W przypadku tworzenia hipertekstu oznacza to, że treść powinna znajdować się w pliku HTML, a styl powinien znajdować się w pliku CSS (lub kilku plikach CSS). Inną, ale powiązaną zasadą jest to, że dokument powinien być bogaty w semantykę (np. Zaznaczanie nagłówków, stopek, list, akcentów, adresów, obszarów nawigacyjnych itp.). Ma to wiele zalet:
- Programy komputerowe znacznie łatwiej interpretują ten dokument. Programy te obejmują przeglądarki, aplikacje zamiany tekstu na mowę, wyszukiwarki i asystentów cyfrowych. (Na przykład przeglądarka pozwala zapisać adres w książce adresowej, jeśli tylko może go znaleźć i zinterpretować. Ponadto możesz wiedzieć, że program Microsoft Word może utworzyć i automatycznie zaktualizować spis treści, jeśli poprawnie oznaczysz nagłówki .)
- Znacznie łatwiej jest później zmienić styl. (Jeśli chcesz zmienić kolor wszystkich nagłówków trzeciego poziomu w 860-stronicowym dokumencie, możesz zmienić pojedynczy wiersz w arkuszu stylów. Jeśli masz mieszaną zawartość i prezentację, musisz ręcznie przejrzeć cały dokument ręcznie I prawdopodobnie przegapiłbyś jeden lub dwa nagłówki, przez co dokument wyglądałby nieprofesjonalnie.)
- W zależności od okoliczności można używać różnych arkuszy stylów (czy dokument jest wyświetlany na ekranie czy drukowany na papierze?). Możesz nawet pozwolić użytkownikowi samemu wybrać styl. (Moja strona internetowa oferuje wiele alternatywnych arkuszy stylów. W IE i FF możesz je zmienić za pomocą menu Widok).
Tak, w skrócie, i
i b
były przestarzałe, ponieważ były znaczniki HTML zaniepokojeni prezentacji , która jest całkowicie błędne.
W HTML5
W HTML5 i
i b
nie są już przestarzałe. Zamiast tego mają znaczenie półmatyczne . Więc teraz dotyczą one semantyki, a nie prezentacji.
Tak jak poprzednio, em
zaznaczasz nacisk: „Kot jest mój”. Ale używasz i
w prawie wszystkich innych przypadkach, w których używasz kursywy w drukowanej pracy. Na przykład:
- Używasz
i
do oznaczania oznaczeń taksonomicznych: „Lubię R. norvegicus ”.
- Służysz
i
do oznaczania frazy w innym języku niż otaczający tekst: À la carte
- Używać
i
do oznaczania słowo gdy mówimy o samo słowo: „ napój jest zarówno rzeczownik i czasownik”
Dobrym pomysłem jest również użycie tego class
atrybutu, aby określić dokładne użycie (także „mikroformat” Google i „mikrodane”). I oczywiście w drugim przypadku powinieneś naprawdę użyć lang
atrybutu, aby określić poprawny język. (W przeciwnym razie na przykład agent zamiany tekstu na mowę może źle wymawiać tekst.)
Mniej więcej rok temu specyfikacja HTML5 mówi również, że cite
należy jej używać do oznaczania nazw książek, filmów, oper, obrazów itp .:
- Co sądzisz o nimfomanki ?
Wreszcie, od dawna, dfn
służy do oznaczania definiującego wystąpienia frazy w tekście (np. Definicji matematycznej lub definicji terminu):
- Grupa to zbiór X wyposażony w jednym operacji binarnej * taki, że ...
Tak więc kursywa w drukowanej książce, która może oznaczać wiele różnych rzeczy, jest reprezentowana przez cztery różne tagi HTML5, co jest naprawdę świetne, ponieważ semantyka jest dobra, o czym starałem się przekonać wcześniej. (Na przykład możesz poprosić przeglądarkę o sporządzenie listy wszystkich definicji w tekście, abyś mógł je wszystkie poznać przed egzaminem).
Wracając do strong
i b
, specyfikacja HTML5 mówi, że strong
należy jej użyć do oznaczenia ważnej części tekstu, na przykład ostrzeżenia lub jakiegoś bardzo ważnego słowa do uchwycenia w zdaniu. Z drugiej strony b
powinny być używane do oznaczania rzeczy, które muszą być łatwe do znalezienia w tekście, takich jak słowa kluczowe. Używam również b
jako nagłówków w elementach listy (LI).
<b>
i<i>
nie jestem przestarzały.