HTML
Klasy i dokumenty tożsamości
Szukaj…
Wprowadzenie
Klasy i identyfikatory ułatwiają odwoływanie się do elementów HTML ze skryptów i arkuszy stylów. Atrybut class może być użyty do jednego lub więcej tagów i jest używany przez CSS do stylizacji. Identyfikatory mają jednak odnosić się do pojedynczego elementu, co oznacza, że nigdy nie należy używać tego samego identyfikatora dwa razy. Identyfikatory są zwykle używane w JavaScript i wewnętrznych linkach do dokumentów i są zniechęcane w CSS. Ten temat zawiera pomocne objaśnienia i przykłady dotyczące właściwego użycia atrybutów klasy i identyfikatora w HTML.
Składnia
- class = "class1 class2 class3"
- id = "unikalny identyfikator"
Parametry
Parametr | Detale |
---|---|
klasa | Wskazuje klasę elementu (nieunikalną) |
ID | Wskazuje identyfikator elementu (unikalny w tym samym kontekście) |
Uwagi
- Zarówno
class
jak iid
są atrybutami globalnymi i dlatego mogą być przypisane do dowolnego elementu HTML. - Nazwy klas muszą zaczynać się od litery (AZ lub az), po których mogą następować litery, cyfry, łączniki i podkreślenia.
- W
HTML5
atrybuty klasy i id mogą być używane w dowolnym elemencie. W HTML 4.0.1 były one niedostępne dla<base>
,<head>
,<html>
,<meta>
,<param>
,<script>
,<style>
i<title>
. - Element może mieć jedną lub więcej klas. Klasy są oddzielone spacjami i nie mogą zawierać samych spacji.
- Element może mieć tylko jeden identyfikator i musi być unikalny w swoim kontekście (tj. Stronie internetowej). Identyfikatory również nie mogą zawierać samych spacji.
Nadanie elementowi klasy
Klasy są identyfikatorami elementów, do których są przypisane. Użyj atrybutu class
aby przypisać klasę do elementu.
<div class="example-class"></div>
Aby przypisać wiele klas do elementu, oddziel nazwy klas spacjami.
<div class="class1 class2"></div>
Korzystanie z klas w CSS
Klasy mogą być używane do stylizacji niektórych elementów bez zmiany wszystkich elementów tego rodzaju. Na przykład te dwa elementy span
mogą mieć zupełnie różne style:
<span></span>
<span class="special"></span>
Klasy o tej samej nazwie można nadać dowolnej liczbie elementów na stronie i wszystkie otrzymają styl związany z tą klasą. Będzie to zawsze prawdziwe, chyba że określisz element w CSS.
Na przykład mamy dwa elementy, oba z highlight
klasy:
<div class="highlight">Lorem ipsum</div>
<span class="highlight">Lorem ipsum</span>
Jeśli nasz CSS jest taki jak poniżej, wówczas kolor zielony zostanie zastosowany do tekstu w obu elementach:
.highlight { color: green; }
Jeśli jednak chcemy kierować div
na highlight
klasy, możemy dodać specyficzność, jak poniżej:
div.highlight { color: green; }
Niemniej jednak, podczas stylizacji za pomocą CSS, generalnie zaleca się stosowanie tylko klas (np. .highlight
) zamiast elementów z klasami (np. div.highlight
).
Podobnie jak w przypadku każdego innego selektora, klasy można zagnieżdżać:
.main .highlight { color: red; } /* Descendant combinator */
.footer > .highlight { color: blue; } /* Child combinator */
Możesz także połączyć selektor klas, aby wybierać tylko elementy, które mają kombinację kilku klas. Na przykład, jeśli jest to nasz HTML:
<div class="special left menu">This text will be pink</div>
I chcemy pokolorować ten konkretny fragment tekstu na różowo, możemy wykonać następujące czynności w naszym CSS:
.special.left.menu { color: pink; }
Nadanie elementowi identyfikatora
Atrybut ID elementu jest identyfikatorem, który musi być unikalny w całym dokumencie. Jego celem jest jednoznaczna identyfikacja elementu podczas łączenia (za pomocą kotwicy), skryptów lub stylizacji (za pomocą CSS).
<div id="example-id"></div>
Nie powinieneś mieć dwóch elementów o tym samym identyfikatorze w tym samym dokumencie, nawet jeśli atrybuty są dołączone do dwóch różnych rodzajów elementów. Na przykład następujący kod jest niepoprawny:
<div id="example-id"></div>
<span id="example-id"></span>
Przeglądarki dołożą wszelkich starań, aby renderować ten kod, ale może wystąpić nieoczekiwane zachowanie podczas stylizacji za pomocą CSS lub dodawania funkcji za pomocą JavaScript.
Aby odwoływać się do elementów według ich identyfikatora w CSS, poprzedz go identyfikatorem #
.
#example-id { color: green; }
Aby przejść do elementu o identyfikatorze na danej stronie, dołącz #
z nazwą elementu w adresie URL.
http://example.com/about#example-id
Ta funkcja jest obsługiwana w większości przeglądarek i nie wymaga do działania dodatkowego JavaScript ani CSS.
Problemy związane ze zduplikowanymi identyfikatorami
Posiadanie więcej niż jednego elementu o tym samym identyfikatorze jest trudne do rozwiązania problemu. Parser HTML zwykle w każdym przypadku spróbuje wyrenderować stronę. Zwykle nie występuje błąd. Ale tempo może skończyć się niepoprawną stroną internetową.
W tym przykładzie:
<div id="aDiv">a</div>
<div id="aDiv">b</div>
Selektory CSS nadal działają
#aDiv {
color: red;
}
Ale JavaScript nie obsługuje obu elementów:
var html = document.getElementById("aDiv").innerHTML;
W tym przypadku zmienna html
zawiera tylko pierwszą zawartość div
("a")
.
Dopuszczalne wartości
Dla identyfikatora
Jedynymi ograniczeniami wartości id
są:
- musi być unikalny w dokumencie
- nie może zawierać żadnych spacji
- musi zawierać co najmniej jeden znak
Tak więc wartością mogą być wszystkie cyfry, tylko jedna cyfra, tylko znaki interpunkcyjne, włączając znaki specjalne, cokolwiek. Po prostu brak białych znaków.
Więc są one ważne:
<div id="container"> ... </div>
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>
To jest nieprawidłowe:
<div id=" "> ... </div>
Jest to również nieprawidłowe, jeśli jest zawarte w tym samym dokumencie:
<div id="results"> ... </div>
<div id="results"> ... </div>
Wartość id
musi zaczynać się od litery, po której może następować tylko:
- litery (AZ / az)
- cyfry (0–9)
- Myślniki ("-")
- podkreślenia („_”)
- dwukropki („:”)
- kropki („.”)
Odnosząc się do pierwszej grupy przykładów w powyższej sekcji HTML5, tylko jeden jest poprawny:
<div id="container"> ... </div>
Są to również ważne:
<div id="sampletext"> ... </div>
<div id="sample-text"> ... </div>
<div id="sample_text"> ... </div>
<div id="sample:text"> ... </div>
<div id="sample.text"> ... </div>
Ponownie, jeśli nie zaczyna się na literę (wielkie lub małe), to nie jest poprawna.
Dla klasy
Reguły dla klas są zasadniczo takie same jak dla id
. Różnica polega na tym, że wartości class
nie muszą być unikalne w dokumencie.
Odnosząc się do powyższych przykładów, chociaż nie jest to poprawne w tym samym dokumencie:
<div id="results"> ... </div>
<div id="results"> ... </div>
Jest to całkowicie w porządku:
<div class="results"> ... </div>
<div class="results"> ... </div>
Ważna uwaga: jak wartości identyfikatora i klasy są traktowane poza HTML
Pamiętaj, że powyższe zasady i przykłady obowiązują w kontekście HTML.
Używanie liczb, znaków interpunkcyjnych lub znaków specjalnych w wartości id
lub class
może powodować problemy w innych kontekstach, takich jak CSS, JavaScript i wyrażenia regularne.
Na przykład, mimo że następujący id
jest poprawny w HTML5:
<div id="9lions"> ... </div>
... jest niepoprawny w CSS:
W CSS identyfikatory (w tym nazwy elementów, klasy i identyfikatory w selektorach) mogą zawierać tylko znaki [a-zA-Z0-9] i ISO 10646 znaków U + 00A0 i wyższe, a także myślnik (-) i podkreślenie ( _); nie mogą zaczynać się cyfrą, dwoma myślnikami ani myślnikiem, po których następuje cyfra . (podkreślenie dodane)
W większości przypadków możesz uciec od znaków w kontekstach, w których mają one ograniczenia lub specjalne znaczenie.