Med #id
väljaren kan du rikta in dig på ett element genom att referera till id
HTML-attributet. På samma sätt som klassattribut betecknas i CSS med en "period" ( .
) före klassnamnet, är ID-attribut prefixerade med en "octothorpe" ( #
), mer allmänt känd som ett "hash" eller "pundtecken".
#header ( /* this is the ID selector */ background: #eee; )
ID-attributvärden ska vara unika. HTML med två eller flera identiska id
s valideras inte och kommer att ge oförutsägbara resultat. Om det finns två av samma kommer CSS fortfarande att matcha och utforma båda. JavaScript kommer dock att hitta det första och stoppa när du frågar efter ett ID.
ID-väljare är extremt kraftfulla. De har en mycket hög specificitet, vanligtvis skriven som (0, 1, 0, 0). Styles gäller för dem åsidosätter andra väljare som endast använder taggar eller klasser. Att demonstrera:
Kolla in den här pennan!
Ett stycke med både ID och klassattribut ges motstridande CSS-regler; även om klassväljaren ( .reusable
) ligger under ID-väljaren ( #unique
) i CSS (det skulle i allmänhet åsidosätta stilar ovanför den i "kaskaden"), förblir stycket rött eftersom det #unique
överväldigar den blå färgen som ställs in av .reusable
. En oändlig mängd klasser kan aldrig slå ID: ns specificitet (även om det fanns ett fel på en gång där 256 klasser skulle slå ett ID).
Hög specificitet och unikhet innebär att användning #id
är ett CSS ”kärnkraftsalternativ”: överdrivet, oflexibelt och oproportionerligt effektivt. Att undvika #id
väljaren i CSS anses vara en bästa praxis: det är att föredra att använda en klass i nästan alla fall.
Med detta sagt har ID-attribut flera värdefulla användningsområden utanför CSS:
- Tillhandahåller unika krokar för JavaScript
- Element med
id
attribut kan inriktas med ankartaggar genom att ställa inhref
attributet tillid
värdet, före en#
symbol. Om du klickar på den ankarlänken kommer den aktuella sidan att fokuseras om på elementet med matchningenid
. Detta kallas en "fragmentidentifierare". - För riktigt unika element i din HTML, till exempel formulärelement, kan ID: n vara användbara för saker som att länka
label
s ochinput
s.
Intressanta platser
- En giltig
#id
kan inte börja med ett nummer och måste innehålla minst ett tecken. En stor del av Unicode är giltiga tecken i enid
. id
attribut och väljare är skiftlägeskänsliga och måste matcha exakt mellan HTML, CSS och JavaScript
Webbläsarstöd
Krom | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
Några | Några | Några | Några | Några | Några | Några |