Sök…


Introduktion

Klasser och ID gör det enklare att hänvisa till HTML-element från skript och formatmallar. Klassattributet kan användas på en eller flera taggar och används av CSS för styling. ID: er är dock avsedda att hänvisa till ett enda element, vilket innebär att samma ID aldrig ska användas två gånger. ID: er används vanligtvis med JavaScript och interna dokumentlänkar och avskräcks i CSS. Detta ämne innehåller användbara förklaringar och exempel på korrekt användning av klass- och ID-attribut i HTML.

Syntax

  • klass = "klass1 klass2 klass3"
  • id = "UNIQUEID"

parametrar

Parameter detaljer
klass Anger elementets klass (ej unik)
id Anger elementets ID (unikt i samma sammanhang)

Anmärkningar

  • Både class och id är globala attribut och kan därför tilldelas alla HTML-element.
  • Klassnamnen måste börja med en bokstav (AZ eller az) och kan följas av bokstäver, siffror, bindestreck och understreck.
  • I HTML5 kan klass- och id-attributen användas på alla element. I HTML 4.0.1 var de begränsade till taggarna <base> , <head> , <html> , <meta> , <param> , <script> , <style> och <title> .
  • Ett element kan ha en eller flera klasser. Klasserna är separerade av mellanrum och kan inte innehålla mellanslag i sig.
  • Ett element kan endast ha ett ID och det måste vara unikt inom sitt sammanhang (dvs. en webbsida). ID: er kan inte heller innehålla mellanslag.

Ge ett element en klass

Klasser är identifierare för elementen som de tilldelas. Använd class attribut för att tilldela en klass till ett element.

<div class="example-class"></div>

För att tilldela flera klasser till ett element, separera klassnamnen med mellanslag.

<div class="class1 class2"></div>

Med hjälp av klasser i CSS

Klasser kan användas för att utforma vissa element utan att ändra alla element av den typen. Till exempel kan dessa två span ha helt olika stylings:

<span></span>
<span class="special"></span>

Klasser med samma namn kan ges till valfritt antal element på en sida och de kommer alla att få den styling som är associerad med den klassen. Detta kommer alltid att vara sant om du inte anger elementet i CSS.

Vi har till exempel två element, båda med klassens highlight :

<div class="highlight">Lorem ipsum</div>
<span class="highlight">Lorem ipsum</span>

Om vår CSS är som nedan, kommer den gröna färgen att tillämpas på texten i båda elementen:

.highlight { color: green; }

Men om vi bara vill rikta in sig på div med highlight kan vi lägga till specificitet som nedan:

div.highlight { color: green; }

I stil med CSS rekommenderas det dock att endast klasser (t.ex. .highlight ) används snarare än element med klasser (t.ex. div.highlight ).

Som med alla andra väljare kan klasser kapslas:

.main .highlight { color: red; } /* Descendant combinator */ 
.footer > .highlight { color: blue; } /* Child combinator */ 

Du kan också kedja klassväljaren för att bara välja element som har en kombination av flera klasser. Om det till exempel är vår HTML:

<div class="special left menu">This text will be pink</div>

Och vi vill färga den här texten rosa, vi kan göra följande i vår CSS:

.special.left.menu { color: pink; } 

Ge ett element ett ID

ID-attributet för ett element är en identifierare som måste vara unik i hela dokumentet. Syftet är att identifiera elementet på ett unikt sätt när du länkar (använder ett ankare), skript eller styling (med CSS).

<div id="example-id"></div>

Du bör inte ha två element med samma ID i samma dokument, även om attributen är kopplade till två olika slags element. Till exempel är följande kod fel:

<div id="example-id"></div>
<span id="example-id"></span>

Webbläsare kommer att göra sitt bästa för att återge den här koden, men oväntat beteende kan uppstå när du stylar med CSS eller lägger till funktionalitet med JavaScript.

För att hänvisa till element med deras ID i CSS, prefix ID med # .

#example-id { color: green; }

För att hoppa till ett element med ett ID på en given sida ska du lägga till # med elementnamnet i URL: n.

http://example.com/about#example-id

Denna funktion stöds i de flesta webbläsare och kräver inte ytterligare JavaScript eller CSS för att fungera.

Problem relaterade till duplicerade ID: er

Att ha mer än ett element med samma ID är ett svårt att felsöka problemet. HTML-parsern försöker vanligtvis göra sidan i alla fall. Vanligtvis inträffar inget fel. Men takten kan hamna på en felaktig beteende-webbsida.

I detta exempel:

<div id="aDiv">a</div>
<div id="aDiv">b</div>

CSS-väljare fungerar fortfarande

#aDiv {
    color: red;
}

Men JavaScript kan inte hantera båda elementen:

var html = document.getElementById("aDiv").innerHTML;

I detta fall bär html variabeln bara det första div innehållet ("a") .

Godtagbara värden

För ett ID

5

De enda begränsningarna för värdet på en id är:

  1. det måste vara unikt i dokumentet
  2. det får inte innehålla några mellanslagstecken
  3. det måste innehålla minst ett tecken

Så värdet kan vara alla siffror, bara en siffra, bara skiljetecken, inkludera specialtecken, vad som helst. Bara inget vitrum.

Så dessa är giltiga:

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

Detta är ogiltigt:

<div id=" "> ... </div>

Detta är också ogiltigt när det ingår i samma dokument:

<div id="results"> ... </div>
<div id="results"> ... </div>
4,01

Ett id värde måste börja med en bokstav som sedan endast kan följas av:

  • bokstäver (AZ / az)
  • siffror (0-9)
  • bindestreck ("-")
  • understreck ("_")
  • kolon (":")
  • perioder (".")

Med hänvisning till den första gruppen med exempel i HTML5-avsnittet ovan är bara ett giltigt:

<div id="container"> ... </div>

Dessa är också giltiga:

<div id="sampletext"> ... </div>
<div id="sample-text"> ... </div>
<div id="sample_text"> ... </div>
<div id="sample:text"> ... </div>
<div id="sample.text"> ... </div>

Återigen, om det inte börjar med en bokstav (versaler eller versaler), är det inte giltigt.


För en klass

Reglerna för klasser är i princip samma som för ett id . Skillnaden är att class inte värden behöver inte vara unikt i dokumentet.

Med hänvisning till exemplen ovan, även om detta inte är giltigt i samma dokument:

<div id="results"> ... </div>
<div id="results"> ... </div>

Det här är helt okej:

<div class="results"> ... </div>
<div class="results"> ... </div>

Viktig anmärkning: Hur ID- och klassvärden behandlas utanför HTML

Tänk på att reglerna och exemplen ovan gäller inom ramen för HTML.

Att använda siffror, skiljetecken eller specialtecken i värdet på en id eller en class kan orsaka problem i andra sammanhang, t.ex. CSS, JavaScript och vanliga uttryck.

Till exempel, även om följande id är giltigt i HTML5:

<div id="9lions"> ... </div>

... det är ogiltigt i CSS:

4.1.3 Tecken och fall

I CSS kan identifierare (inklusive elementnamn, klasser och ID: er i väljare) endast innehålla tecknen [a-zA-Z0-9] och ISO 10646-tecken U + 00A0 och högre, plus bindestreck (-) och understrecket ( _); de kan inte börja med en siffra, två bindestreck eller bindestreck följt av en siffra . (betoning tillagd)

I de flesta fall kan du komma undan karaktärer i sammanhang där de har begränsningar eller speciell betydelse.


W3C-referenser



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow