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 i id 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

5

Jedynymi ograniczeniami wartości id są:

  1. musi być unikalny w dokumencie
  2. nie może zawierać żadnych spacji
  3. 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>
4.01

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:

4.1.3 Znaki i wielkość liter

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.


Referencje W3C



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow