WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Jag använder aldrig class, är det fel? (https://www.wn.se/forum/showthread.php?t=29732)

Thir13teen 2008-06-05 01:28

Vi har ju ID och class att välja på och för att undvika krångel så mycket som möjligt använder jag nu alltid ID, aldrig class. Jag vet att ID ska använda när det bara förekommer en gång och class vid flera förekomster. Eller var det tvärtom? :blink:

Jag har aldrig haft några problem med detta, sidorna visas som de ska och koden validerar. Och jag behöver inte hålla reda på när det ska vara . eller # i CSS:en, nu vet jag att det alltid är #.

Kan någon komma med någon anledning till varför detta skulle vara fel?

Alex 2008-06-05 02:46

För att det är fel. Visas säkert fel någonstans i någon webbläsare. Följ standarden så slipper du problem i framtiden. Det är dessutom mycket skönare att kunna skilja på "dynamisk design" och "statisk design".

Det är precis som du säger. Id används en gång, och class skall användas när du har element du vill cssa fler gånger.

Thir13teen 2008-06-05 03:05

Citat:

Originally posted by Alex@Jun 5 2008, 02:46
För att det är fel. Visas säkert fel någonstans i någon webbläsare.
Tack för svar men är inte övertygad.

Grejen är att jag skriver en guide om CSS för nybörjare och det vore så mycket skönare kunna att skriva "använd ID" istället för "använd ID då och då och annars Class" i denna guide där läsaren redan har fullt upp med att lära sig nya saker.

Keep 'em coming.

Onkelborg 2008-06-05 03:21

Om jag skulle välja så skulle jag välja class, id är starkt begränsat i användbarhet jämfört med class..

rille77 2008-06-05 03:44

Citat:

Originally posted by Thir13teen@Jun 5 2008, 03:05
Grejen är att jag skriver en guide om CSS för nybörjare och det vore så mycket skönare kunna att skriva "använd ID" istället för "använd ID då och då och annars Class" i denna guide där läsaren redan har fullt upp med att lära sig nya saker.

Varföt lära ut fel när man kan lära ut rätt?

Skulle även vara kul att veta hur du lyckas validera en XHTML sida med flera likadana ID

Thir13teen 2008-06-05 03:52

Citat:

Ursprungligen postat av rille77
Citat:

Ursprungligen postat av Thir13teen
Grejen är att jag skriver en guide om CSS för nybörjare och det vore så mycket skönare kunna att skriva "använd ID" istället för "använd ID då och då och annars Class" i denna guide där läsaren redan har fullt upp med att lära sig nya saker.


Varföt lära ut fel när man kan lära ut rätt?

Skulle även vara kul att veta hur du lyckas validera en XHTML sida med flera likadana ID

Du citerade svaret på din egen fråga.

Ok, class är bevisligen ett bättre val än ID då flera likadana ID inte blir validerat. Men, kan någon ge någon bra förklaring varför man inte alltid skulle använda class då?

crazzy 2008-06-05 08:01

Citat:

Originally posted by Thir13teen@Jun 5 2008, 02:52
kan någon ge någon bra förklaring varför man inte alltid skulle använda class då?

document.getElementById('lol'); ???

Syke 2008-06-05 08:22

ID ska användas när elementet förekommer en gång. Class ska användas när element förekommer flera gånger. Om du ska skriva dokumentation och är orolig för hur läsaren kommer att reagera på att använda "#" vs. "." hur förvirrade kommer de då inte bli av alla andra selectors? Skriv hellre isåfall att för enkelhetens skulle använder vi oss enbart av klasser, även om det inte är rätt och det finns många andra sätt att träffa olika element med css:en.

IDn och klasser har även olika "vikt" (specificitet) vid arv och cascading.

Klasser kan, som tidigare nämnts, användas flera gånger och är då bättre att använda för generella saker som återkommer i sidan. T.ex. en paragraf med text som ska ha en viss färg, ett visst typsnitt, en viss bakgrundsbild och en viss storlek. Denna texttyp kanske man vill återanvända på flera olika ställen i sidan och då blir det snabbt omständigt med ID.

Om det finns en av dessa paragrafer som ska ha utseendet ovan men även en annan bakgrundsbild, ja då är det väldigt bra att kunna först ge paragrafen den generella klassen, och sedan ge den en flummig bakgrundsbild med en ID (det går såklart även med en till klass, men då måste man se upp vart i CSS:en man placerar klassen så den inte skrivs över).

Det finns även fler anledningar till att båda bör användas. T.ex. kan du länka till element med ett ID, men inte ett med en klass.

Slutsats: Båda behövs, lär ut rätt från början, annars gör du dem en björntjänst!

Här är några länkar där du kanske hittar lite mer info:
http://www.tizag.com/cssT/cssid.php
http://www.w3.org/TR/CSS21/selector....elector-syntax
http://css-discuss.incutio.com/?page=ClassesVsIds

jonny 2008-06-05 08:36

Det hela är egentligen ganska enkelt.

Class skulle man kunna kalla grupp. När du har flera olika element som ska ha samma egenskaper kan du använde en class.

Id ska vara en unik identifierare. Du kan använda de båda i kombination.

Tänk dig att du har fem knappar. Alla knappar är likadana med undantag för en knapp som är röd.

Du kan då använda class för att sätta de gemensamma egenskaperna på alla knappar och så id på den röda knappen för att göra den röd.

Ett element kan också ha flera klasser men bara ett id.

HMH 2008-06-05 08:37

Citat:

Originally posted by Thir13teen@Jun 5 2008, 02:52
kan någon ge någon bra förklaring varför man inte alltid skulle använda class då?
Vid användning av ankarlänkar:
http://www.dinsida.se/lol.html#AnkarID


...eller kanske mest för att slippa problem då du t ex vill override:a en klass:

Kod:

<style type="text/css>
  #DittSpecifikaElement
  {
    color: #f00;
  }
  .enGenerellKlass
  {
    font-size: 2em;
    font-weight: bold;
    color: #000;
  }
</style>

<div class="enGenerellKlass">En svart stor fet text</div>
<p class="enGenerellKlass">En svart stor fet text</p>
<span class="enGenerellKlass">En svart stor fet text</span>

<div id="DittSpecifikaElement" class="enGenerellKlass">En röd stor fet text</div>

Dvs ID har högre specificitet än class vilket kan vara väldigt användbart för att slippa trassla in sig i överlagringar och onödigt användande av !important.


Alla tider är GMT +2. Klockan är nu 03:19.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson