Met de #id
selector kunt u een element targeten door te verwijzen naar het id
HTML-attribuut. Vergelijkbaar met hoe klassekenmerken in CSS worden aangeduid met een "punt" ( .
) voor de klassenaam, worden ID-kenmerken voorafgegaan door een "octothorpe" ( #
), beter bekend als een "hekje" of "hekje".
#header ( /* this is the ID selector */ background: #eee; )
ID-kenmerkwaarden moeten uniek zijn. HTML met twee of meer identieke id
s wordt niet gevalideerd en zal onvoorspelbare resultaten opleveren. Als er twee dezelfde zijn, zal CSS nog steeds overeenkomen en beide stijlen. JavaScript zal echter bij het opvragen van een ID de eerste vinden en stoppen.
ID-selectors zijn buitengewoon krachtig. Ze hebben een zeer hoge specificiteit, meestal geschreven als (0, 1, 0, 0). Stijlen die ermee van toepassing zijn, overschrijven andere selectors die alleen tags of klassen gebruiken. Laten zien:
Kijk eens naar deze pen!
Een alinea met zowel een ID als een class-attribuut krijgt in strijd met CSS-regels; hoewel de class selector ( .reusable
) zich onder de ID selector ( #unique
) in de CSS bevindt (het zou over het algemeen de stijlen erboven in de “cascade” overschrijven), blijft de alinea rood omdat #unique
de blauwe kleur die door wordt ingesteld, overweldigd wordt .reusable
. Een oneindig aantal klassen kan de specificiteit van de ID nooit verslaan (hoewel er ooit een bug was waarbij 256 klassen een ID versloegen).
Hoge specificiteit en uniekheid betekenen dat het gebruik van #id
een CSS "nucleaire optie" is: overbelast, inflexibel en onevenredig effectief. Het vermijden van de #id
selector in CSS wordt als een best practice beschouwd: het verdient de voorkeur om in bijna alle gevallen een klasse te gebruiken.
Dat gezegd hebbende, hebben ID-attributen verschillende waardevolle toepassingen buiten CSS:
- Biedt unieke hooks voor JavaScript
- Elementen met
id
attributen kunnen worden getarget door ankertags, door hethref
attribuut in te stellen op deid
waarde, voorafgegaan door een#
symbool. Als u op die ankerkoppeling klikt, wordt de huidige pagina opnieuw gefocust op het element met de overeenkomstid
. Dit wordt een "fragment-ID" genoemd. - Voor echt unieke elementen in uw HTML, zoals formulierelementen, kunnen ID's handig zijn voor zaken als het koppelen van
label
s eninput
s.
Nuttige Plaatsen
- Een geldige
#id
kan niet beginnen met een cijfer en moet minimaal één teken lang zijn. Een groot deel van de Unicode zijn geldige tekens in eenid
. id
attributen en selectors zijn hoofdlettergevoelig en moeten exact overeenkomen in HTML, CSS en JavaScript
Browser-ondersteuning
Chrome | Safari | Firefox | Opera | D.W.Z | Android | iOS |
---|---|---|---|---|---|---|
Ieder | Ieder | Ieder | Ieder | Ieder | Ieder | Ieder |