PorównaniePorównania

class vs id

class można powtarzać na wielu elementach i łączyć kilka naraz, a id musi być unikalny w całym dokumencie i służy do kotwic, etykiet i JavaScriptu.

Na tej stronie

Porównanie w tabeli

#
  • Unikalność

    class
    Może powtarzać się na wielu elementach
    id
    Musi być unikalny w całym dokumencie
  • Liczba wartości na elemencie

    class
    Wiele, oddzielonych spacją
    id
    Jedna wartość
  • Specyficzność w CSS

    class
    Niska, łatwa do nadpisania
    id
    Bardzo wysoka, trudna do nadpisania
  • Typowe zastosowania

    class
    Stylowanie wielu elementów, classList w JS
    id
    Kotwice, label for, getElementById
  • Rekomendacja do stylowania

    class
    Tak, podstawowy sposób w CSS
    id
    Lepiej unikać, przez wysoką specyficzność

Przykład

#
HTML
<p class="card">Pierwsza karta</p>
<p class="card">Druga karta, też z klasą card</p>
<h2 id="cennik">Cennik</h2>
Podgląd

Definicja i zastosowanie

#

Atrybut class jest wielokrotny: ta sama nazwa może wystąpić na wielu elementach, a jeden element może mieć kilka klas oddzielonych spacją, np. class="btn btn-primary". To podstawowy sposób stylowania w CSS i zarządzania elementami przez classList w JavaScripcie, a jego specyficzność jest niska i łatwa do nadpisania.

Atrybut id musi być unikalny w całym dokumencie, dlatego jeden element ma zawsze tylko jedną jego wartość. Służy do konkretnych, pojedynczych połączeń: kotwicy w adresie (#faq), połączenia <label for> z polem albo szybkiego wyszukania elementu przez getElementById. W CSS ma bardzo wysoką specyficzność, przez co selektor #id trudno później nadpisać.

Prosta zasada wyboru: do stylowania wielu podobnych elementów i pracy ze skryptem używaj class. Do unikalnych haków, które coś konkretnego wskazują (etykieta, kotwica, jednorazowe odwołanie w JavaScripcie), użyj id.

Składnia

#
Składnia
<element class="nazwa druga-nazwa">
<element id="unikalna-nazwa">

Więcej przykładów

#
id łączy etykietę z polem
HTML
<label for="email">E-mail</label>
<input id="email" type="email">
Podgląd
Powtórzony id to błąd
HTML
<button id="save" type="button">Zapisz</button>
<button id="save" type="button">Zapisz (duplikat id!)</button>
Podgląd

getElementById zwróci tylko pierwszy z nich. Klasę class można bez problemu powtarzać.

Dobre praktyki

#
  • Do stylowania w CSS sięgaj po class. Selektor #id ma bardzo wysoką specyficzność i trudno go nadpisać.
  • id musi być unikalny w całym dokumencie, nie tylko w obrębie jednego komponentu.
  • Jeden element może mieć wiele klas oddzielonych spacją, ale tylko jeden id.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.