webForumDet fria alternativet

Skillnaden id och class..

7 svar · 602 visningar · startad av Kalle M

Kalle MMedlem sedan mars 20041 936 inlägg
#1

Tycker det känns som jag blandar ihop vad ID och classer är.

Om jag förstått rätt så är ID oftast en "grej" ,Layer eller tabell exempelvis som endast kan användas en gång i ett htmldokument?

Class kan användas fler gånger i ett htmldok!?

TroxyMedlem sedan mars 20041 505 inlägg
#2

ID är ett html-attribut som används för att unikt identifiera ett element. ID måste vara unikt och kan sättas på vilket element som helst.

Class däremot är inte unikt och används om man vill att flera element ska tilldelas samma css-egenskaper. Så class-namn är inte unika och kan tilldelas hur många gånger som helst på vilka element som helst.

PierreRMedlem sedan aug. 20076 inlägg
#3

Hej,
Som du antyder i frågan och som Troxy skriver är id unika och classer kan återanvändas många gånger på flera olika saker.

Ett typiskt exempel på en klass kan vara:

.inside {  	
           padding: 1em;  
}

Den vill du ju kunna använda på många olika divar eller andra taggar. Kom även ihåg att man kan använda många klasser på en tagg, typ:

<div id="content" class="right-space inside">

I detta exempel så kommer kontent att få stilar från bägge inside och right-space.

dAEkMedlem sedan feb. 20041 816 inlägg
#4

Tänk på att skapa klasser som beskriver innehållet och inte hur de ska presenteras. Klasser med namn som "right-side-content" eller "top-menu" kommer att kännas väldigt fel när/om layouten ändras till att bli horisontal, eller nåt. Då är det bättre med namn som "secondary-content", "related-content" eller "main-menu" för då kan du ändra layouten helt och hållet utan att ha missvisande klassnamn i html-koden. Det är samma visa för id:n.

doggelitoMedlem sedan juni 20003 076 inlägg
#5

Om det är "rätt" ska jag låta vara osagt men jag brukar göra så här:
Jag delar upp min sida i block, block som återkommer på alla sidor men som är unika.
Dessa block tilldelar jag sedan id:n, brukar kunna se ut så här:

<body id="body">
     <div id="layout">
          <div id="layout_header"></div
          <div id="layout_content"></div>
          <div id="layout_footer"></div>
     </div>
</body>

I dessa block placerar jag sedan all info som ska visas och dessa har om det behövs klasser.
Ex:

<body id="body">
     <div id="layout">
          <div id="layout_header">
               <span class="white">blabla</span>
          </div

          <div id="layout_content">
               <span class="red">bleble</span>
          </div>

          <div id="layout_footer">
               <span class="white">bloblo</span>
          </div>
     </div>
</body>

Behöver dock sällan använda klasser, jag ställer alla "default" värden i id:na. Brukar räcka långt!
Ex:

#layout_header {
     font-size:1.2em;
}
#layout_content {
     font-size:1em;
}
#layout_footer {
     font-size:0.8em;
     color:#ff0000;
}
#layout_footer a {
     text-decoration:none;
}
PierreRMedlem sedan aug. 20076 inlägg
#6

Hej,
Min miss, erkänner jag villigt. dAEk har helt rätt så läs doggelitos förslag övergripande och kolla inte på namnen som där är lite missvisande. Man kan ju tycka att det är fånigt att inte döpa en varningstext till red men som dAEk påpekar kan man nästan alltid hitta på meningsfulla namn. I just mitt ex skulle ju varning vara en bra klass.

doggelitoMedlem sedan juni 20003 076 inlägg
#7

PierreR skrev:

läs doggelitos förslag övergripande och kolla inte på namnen som där är lite missvisande

Det är väl till viss del tycke och smak hur man namnger men jag måste bara försvara min namngivning.
Hur kan mina namn var missvisande? header, content, footer?
Det ska vara att dom startar med layout_ då, men jag skriver så för att veta att det är ett designblock som det gäller.

Och att namnen ska funka i både horisontellt och vertikalt läge köper jag inte.
Det finns ju inte en chans att marginaler, paddings, färger, storlekar osv. passar i båda lägena.

dAEkMedlem sedan feb. 20041 816 inlägg
#8

doggelito skrev:

Och att namnen ska funka i både horisontellt och vertikalt läge köper jag inte.
Det finns ju inte en chans att marginaler, paddings, färger, storlekar osv. passar i båda lägena.

Det spelar ingen roll om du köper det eller ej -det är så. ;)

255 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
125 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)