![]() |
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? |
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. |
Citat:
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. |
Om jag skulle välja så skulle jag välja class, id är starkt begränsat i användbarhet jämfört med class..
|
Citat:
Skulle även vara kul att veta hur du lyckas validera en XHTML sida med flera likadana ID |
Citat:
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å? |
Citat:
|
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 |
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. |
Citat:
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> |
CSS + ID fungerar inte i Safari
|
Citat:
|
Citat:
Utav dom mac användare som använder Safari på mina websidor så använder 85% fortf. Safari 2. |
Citat:
Eller menar du selektorn +? (Lite oklart uttryckt vad css+id betyder…) En del mer avancerade pseudo-element som :first-letter fungerade däremot inte i den första versionen av Safari (som knappast används längre). Thir13teen: Lär dig använda css korrekt, särskilt om du vill lära ut det, annars är risken stor att du får märkliga underliga "fel" helt oväntat. CSS är som en verktygslåda, desto fler verktyg du kan använda desto skickligare är du. |
Vilken märklig diskussion =)
Ska du skriva en guide om CSS så tycker jag väl att du bör sträva efter att ge läsaren korrekt information och inte vilseleda eller förvirra. Har du att välja mellan "alltid id" eller "alltid class" så är givetvis det senare att föredra. Om du behöver komma åt elementen via Javascript, vilket ofta är högst relevant vid något tillfälle, så slipper du då göra några ändringar utan kan bara lägga till ett id på aktuella element. Id är till för unik identifiering och ska aldrig dupliceras medan class är mer direkt relaterad till css och designen i stort. |
Citat:
I sann Sverige-anda ignorerar folk att jag sa att jag vill kunna förklara det så enkelt som möjligt för en nybörjare och hävdar att det är vilseledande, att jag inte kan CSS o.s.v. Det var precis vad jag väntade mig iofs. Men jag vet hur jag ska skriva i min förklaring - att man ska börja enkelt med en av de två (class, that is) men sträva efter att använda båda korrekt. |
Även om det var ett lite aggressivt inlägg så är Martine en av de mest kunniga på forumet inom webbprogrammering så du kanske borde försöka lära dig lite av honom istället för att sjunka till en ännu lägre nivå... Om du inte beskriver skillnaderna mellan de bägge så kommer du sannolikt förvirra och vilseleda mer än du lär ut. Det är trots allt ganska simpelt att lära sig även för en nybörjare....
|
martine: Har aldrig upplevt det själv utan det har hela tiden varit en kund åt mig som använt safari som skickat mängder med skärmdumpar där jag använt css isamband med <div id="">. då som (#id { background-color: #ffffff; } ) tex.
|
När ja bara ska anropa en gång så skriver ja koden direkt så här:
div style="margin-top:10px;font-family:tahoma"></div> är det en div som kommer flera gånger så använder ja klasser. lite jobbigt för andra att läsa koden, men orkar inte bry mig om det:P |
Citat:
|
Citat:
Har du lust att länka till sidan? (Eller skicka ett pm.) Jag skulle gärna vilja se några riktiga kodexempel där det inte fungerar. Vanligtvis fungerar det ju. Om det nu verkligen är en bugg i Safari vore det bra att ha koll på den. (I 90 % av fallen är det man själv som råkat ställa till det - jag var nyligen helt övertygad om att jag hittat en bugg i php:s xsl-funktioner, men det var förstås en egen miss…) |
Citat:
Sasser: som du redan verkar förstå är det sättet fel av flera olika anledningar, även om det funkar. Gör inte så :P |
Citat:
|
Citat:
|
Kod:
.hidden Lägg till en class i tagge <div id="div-tag" class="align-left hidden" />. Så använder jag classes ofta utöver design. Kod:
<div id="articles"> En annan fördel är att använda Firebug och ha egna standard classer, sedan inspecta och ändra classen direkt i browsern för att se om det är bättre att göra den lilla ändringen. debug.css har jag döpt min class sammling till. Ville bara säga det :) |
Citat:
|
Citat:
Det är sällan det finns en enda universallösning som alltid är rätt utan man får ofta väga fördelar mot nackdelar utifrån sina förutsättningar, vilket de här som pysslar med databasdesign vet mer än väl. |
Citat:
Citat:
PS meningen "som du redan verkar förstå är det sättet fel av flera olika anledningar, även om det funkar. Gör inte så" verkar också ganska viktigpettermässig... :blink: |
|
Citat:
Angående många olika element skulle jag hellre "cluttra" min CSS istället för HTML men det kanske är en smaksak (<- Läs: det är det tamefan inte, du skall ICKE ha CSS inne i din HTML, men om jag säger det så låter jag som en viktigpetter så jag struntar i det). |
Citat:
|
Citat:
|
Citat:
|
id används ju också som ankare, vilket är en stor nytta för användaren.
Man skulle kunna komma undan med endast IDs och ha en sjysst semantik utan att ha alltför plottrig CSS. Själv föredrar jag att faktiskt att använda båda. Roger Johansson is the man på dessa saker, så översätt hans text och ange källhänvisning. |
Citat:
En länk eller ett exempel där felet återupprepas vore intressant som sagt. (Safari 2 är ungefär lika kapabel som Firefox 2 och av den anledningen är det ovanligt att man får problem med enklare selektorer där. Suck, nu blir jag väl kallad viktigpetter igen... :huh: ) |
Citat:
Det är mycket svårare att ändra ett felaktigt beteende än att lära sig rätt från början. Att lära sig att använda id och classer på rätt sätt är väl bland det mest grundläggande man ska börja med i CSS tillsammans med "cascading order" (ibland är svenska svårt). Att använda style i html är ett "big no no" men som alltid så finns det undantag, har man 20 sidor och på varje sida så finns det ett element som är helt unikt för webbplatsen så finns det ingen anledning att kladda ner CSSen med 20 olika classer/idn som bara gör CSSen mer komplex. Nu dök det visst upp en viktigpetter till i tråden. |
Citat:
/Viktigpettern :D |
Är det inte enklare att dela upp CSS:en i flera filer och lägga det som sällan används i en fil eller i en fil per sida eller vilket som. Det blir fortfarande kod som är enklare och trevligare att läsa.
Appropå viktigpettrar, om du inte vill ha svaret bör du undvika att ställa frågan. |
Citat:
Till de andra: har man relevant information/åsikter att dela med sig utan att använda sig av nedlåtande ton är man självklart inte någon viktigpetter. |
Vill bara tillägga att om du tänkt dig använda JS på sidan (beroende på vad du nu ska göra) så är kanske ett JS ramwerk (ex. jQuery) något för dig, speciellt om du vill selecta element med en viss klass.
|
Alla tider är GMT +2. Klockan är nu 19:33. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson