Atributul id în HTML

Atribute globale HTML 4.0+

Dă unui element un identificator unic în pagină, folosit de linkuri cu #, de CSS, de JavaScript și de etichetele formularelor.

Sintaxă tag
<section id="contact">...</section>

Ce face Atributul id

Atributul id poate fi pus pe orice element și trebuie să fie unic în tot documentul: două elemente nu au voie să aibă același id. Valoarea nu are voie să conțină spații.

Un id are mai multe roluri: este ținta linkurilor interne (href="#contact" derulează pagina la element), leagă un <label> de câmpul lui prin atributul for, este folosit de atribute ARIA (aria-labelledby, aria-describedby) și poate fi găsit rapid din JavaScript cu document.getElementById().

În CSS poți stiliza un element după id cu selectorul #contact, dar acest selector are o specificitate mare și se suprascrie greu. Pentru stiluri se preferă de obicei clasele.

Atribute

Atribut Descriere
id Un șir unic în pagină, fără spații. Poate conține litere, cifre, cratime și liniuțe jos; e bine să înceapă cu o literă.

Exemple

Exemplul 1: Link intern către o secțiune a paginii

Linkul cu href="#program" derulează pagina până la elementul care are id="program".

<nav>
  <a href="#program">Program</a>
  <a href="#contact">Contact</a>
</nav>

<section id="program">
  <h2>Program</h2>
  <p>Luni – Vineri, 9:00 – 18:00</p>
</section>

<section id="contact">
  <h2>Contact</h2>
  <p>Str. Lăpușneanu nr. 10, Iași</p>
</section>

Ce afișează browserul

Două linkuri: „Program” și „Contact”.
La clic pe „Contact”, pagina derulează la secțiunea Contact, iar adresa din bara browserului devine ...#contact.

Exemplul 2: Legarea unei etichete de câmp și citirea din JavaScript

Atributul for al etichetei folosește id-ul câmpului. Același id este folosit de script pentru a citi valoarea.

<label for="nume">Numele tău</label>
<input id="nume" type="text" value="Ana Popescu">
<p id="salut"></p>

<script>
  const nume = document.getElementById("nume").value;
  document.getElementById("salut").textContent = "Bun venit, " + nume + "!";
</script>

Ce afișează browserul

Numele tău [Ana Popescu]
Bun venit, Ana Popescu!
(clic pe textul „Numele tău” mută cursorul în câmp)

Greșeli frecvente

  • Același id pe mai multe elemente (de exemplu la carduri generate în buclă). getElementById() găsește doar primul element, iar etichetele și linkurile ajung la elementul greșit.
  • Spații în valoare (id="date contact"). Valoarea nu e validă; folosește o cratimă: id="date-contact".
  • Stilizarea întregului site prin selectori #id. Specificitatea mare face stilurile greu de suprascris; pentru aspect folosește clase.

Comenzi înrudite

  • Atributul class: Atribuie unui element una sau mai multe clase separate prin spațiu, folosite pentru stiluri CSS și selectare din JavaScript.
  • Atributele data-*: Atribute personalizate care încep cu data- și păstrează informații suplimentare pe un element, citite apoi din JavaScript sau din CSS.
  • <label>: Etichetă accesibilă pentru un control de formular: dând clic pe etichetă, activezi sau bifezi câmpul asociat.
  • <a>: Creează un hyperlink către o altă pagină web, un fișier, o adresă de email, un număr de telefon sau o ancoră din pagină.