I denna artikel kommer jag att förklara hur du kan organisera och planera ditt CSS dokument på bästa möjliga sätt (relativ tolkning). Webben blir mer och mer komplex, trots att vi ständigt försöker simplifiera våra koder och designer. I och med detta så krävs det en mer effektiv och förmodligen en mer ”komplex” CSS kod för att hemsidan vi bygger skall fungera på ett så bra sätt som möjligt. Det är därför viktigt för oss att vi kan planera och organisera vår CSS kod för att få en sida som är lätt att underhålla.
Jag förväntar mig i denna artikel att du som läsare har grundläggande kunskaper om CSS, även om det vi går igenom är ganska så grundläggande. Det är ju inte CSS koden som är svår, det är hur man använder den.
Att kommentera en kod ses som något självklart i varje projekt som tänker ”ett steg längre”. Den hjälper dig och andra att förstå koden och dess syfte samt underlättar felsökningen i koden. Det blir ju mycket lättare att hitta det man letar efter.
Men vad klassas som en meningsfull kommentar? Nedan nämner jag exempel på sådana kommentarer som anses vara viktiga i webbranchen, enligt mina egna undersökningar samt olika informationskällor.
/* -------------------------------------------------------------------
ASPKOLL.SE
Uppdaterad: 2009-01-01
Av: Shadi Domat
Uppdateringar: Avdelningen ’Medlemmar’ lades till
-------------------------------------------------------------------*/
/* -------------------------------------------------------------------
FÄRGER I MAIN.CSS
Bakgrunden: #000 (svart)
Textfärg: #fff (vit)
Länkfärg: #990000 (vinröd)
osv…
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
Medlemmar
------------------------------------------------------------------- */
/* -------------------------------------------------------------------
Forumet
-------------------------------------------------------------------*/
/* -------------------------------------------------------------------
Kom ihåg att bredden på DIV:en blir 6 pixlar mindre i
Internet Explorer 6. Så det där bör vi göra något åt nästa
gång vi uppdaterar koden
------------------------------------------------------------------- */
Börja med att sätta inställningarna för de generella HTML elementen högst upp i dokumentet, till exempel:
body {
background: #fff;
color: #000;
font-size: 12px;
}
h1 {
color: #000;
font-size: 20px;
}
img {
border: 1px solid #000;
}
Efter detta listar du upp alla klasser som du ska använda dig av under denna avdelning eller sida, till exempel:
.redText {
color: #ff3300;
font-weight: bold;
}
.hideDiv {
display: none;
}Ordningen av XHTML koden borde vara utgångspunkten för ordningen av din CSS kod. Genom att ha detta i åtanke när du kodar så kommer du att lättare kunna bilda en uppfattning om din CSS kod i koppling till in XHTML kod vid snabba överblick samt när du ska leta efter hur ett visst element är inställt i CSS koden.
Det är viktigt att känna till skillnaderna mellan element, ID och klasser. Varför? Jo, för att genom dessa kunskaper så kan du (1) dels skapa en mer effektiv kod samt (2) reducera storleken på din CSS fil. Nedan förklaras skillnaderna mellan dessa tre användningssätt.
p {
margin: 0px;
font-size: 12px;
}#mainDiv {
width: 800px;
height: 500px:
}.redText {
color: #ff3300;
}Som du kanske förstår så kan det bli många olika namn på ID och klasser när man arbetar med en större sida, detta vill man undvika. Nedan visar jag exempel på CSS och XHTML kod som man kan stöta på.
<div id=”Menu”>
<ul class=”MenuUL”>
<li class=”Item1”>Text</li>
</ul>
</div>[code]
Och CSS koden för den blir:
[code]#Menu { width: 500px; }
.MenuUL { margin: 2px; }
.Item1 { color: #000; }
Koden ovan är innehåller inga tekniska fel, så på det sättet är den korrekt, men den orsakar ändå lite problem för oss. För det första så blir det väldigt många namn att hålla reda på och för det andra så blir det väldigt mycket mer kod om vi skall exempelvis ha flera st. <li> i menyn. Inte sant? Så hur löser man det bäst? Låt oss använda samma XHTML kod igen, men lite modifikation:
<div id=”Menu”>
<ul>
<li>Text</li>
</ul>
</div>[code]
Och CSS koden för den blir:
[code]#Menu { width: 500px; }
#Menu ul { margin: 2px; }
#Menu ul li { color: #000; }
Ser du skillnaden? Gör man som ovan så blir livet mycket enklare (relativ tolkning = smaksak). Nu kan vi lägga till hur många <li> som helst i menyn utan att behöva lägga till nya klassnamn för var och en. Det vi gjorde helt enkelt är att vi använde oss av CSS härliga förmåga att ”hitta” de olika elementen som vi har kodat i vårt ID ”Menu”. Först sa vi att den skall sätta marginalen på det <ul> som ligger inuti ”Menu” och sedan sa vi åt den att ändra textfärgen på varje <li> som ligger i <ul> som i sin tur ligger i ”Menu”. Smidigt va?
Du ska ge logiska namn åt dina klasser och ID. Döp inte din klass efter exempelvis dess position, t.ex. ”.divenUppTillHoger”, för med tanke på att positionen på denna DIV kan ändras så blir det missvisande om du sedan bestämmer dig för att placera den längst ned till vänster. Ett bättre namn kan exempelvis vara: ”.logoType” eller något annat relevant.
Använd hellre bindestreck (-) än understreck (_) när du döper dina klasser och ID. Varför? Ja du, egentligen klarar de flesta nya webbläsare av båda, men vissa gamla webbläsare kan ha problem med att tolka understrecket. Så om du vill vara ”100%” säker på att alla webbläsare klarar av din CSS kod, så bör du använda bindestrecket. Exempel: ”#main-div-header”.
Ett ”fel” eller ”misstag” som många gör (även jag som skriver om detta) är just att man glömmer egenskapen inherit. Denna egenskap underlättar ditt kodande på ett sådant vis att du inte behöver skriva samma kod om igen flera gånger för exempelvis element som är nästlade i varandra. Komplicerat? Det låter som det, men det är det inte.
Vissa XHTML element ärver egenskaper från dess ”förälder” automatiskt, andra gör inte det. Du kan titta på XHTML koden nedan för att se exempel på hur du kan ärva egenskaper:
<div>
<h1>Rubrik</h1>
<p>Texten</p>
</div>
Och CSS koden:
div {
float: left;
color: #000;
}
div h1 { float: inherit; }
div p { margin: 2px; }Vad hände nu? Jo, det är så att vissa egenskaper ärvs vidare av underelement, såsom textfärg, textstorlek och typsnitt, medan andra ärvs inte vidare, som t.ex. positionering samt bakgrundsfärg.
I det här fallet så kommer rubriken och paragrafen att ärva textfärgen av DIV, men de kommer inte att ärva placeringen ”float”. Nu vill vi att rubriken alltid ska ha samma värde i ”float” som den DIV den ligger i, då använde vi oss av värdet inherit istället för att ännu en gång skriva ”float: left;”. Så om vi nu skulle ändra ”float” till right för DIV så skulle den ändras för rubriken också. Hänger du med?
Kortfattat: layoutrelaterade egenskaper ärvs inte vidare, medan textrelaterade egenskaper ärvs.
Ibland vill man ha exakt samma egenskaper för flera olika dokument, då kan man gruppera de istället för att skapa onödigt mycket repeterande kod. Se exempel:
h1, h2, h3 { color: #000; }I detta fall kommer alla dessa tre typer av rubriker få färgen svart.
Jag har i denna artikel förklarat hur man kan förbättra och effektivisera både CSS koden samt det egna arbetet genom några enkla och ganska så grundläggande trick. Det är i och för sig mer tips än trick.
Det är viktigt att veta att all kodning är personlig, vi alla jobbar på olika sätt. Men någonstans måste vi alla mötas tillsammans för att kunna förstå av varandra och första varandras koder och arbetssätt. Ju mer vi skapar generella standarder i kodandet, desto mer kommer vi att kunna dela information med varandra på ett bra och förståeligt sätt.
Till denna artikel har jag använt följande artikel som källa:
http://www.webcredible.co.uk/user-friendly-resources/css/planning-stylesheet.shtml
Jag har översatt artikeln och byggt den efter egna behov, men ett stort tack till WebCredible!
Med reservation för stavfel.
Kommentera gärna!
Vänliga hälsningar
Shadi Domat
Skapades: 2009-11-01 20:46:25
Skribent: Shadi
Lästs 1413 gånger
Betyg: 0 (artikeln har endast 1 röster, det krävs minst 5 för ett betyg)
Ingen har kommenterat denna artikel än.