CSS-WORKSHOP
Nätverksträff för it-bibliotekarier, 7 mars 2013
Sara Britta Jadelius
Trollhättans Stadsbibliotek
sarabritta.jadelius@trollhattan.se
0520-49 76 65
HTML – strukturerar innehåll
<h1>Det här är en rubrik</h1>!
<p>Det här är ett stycke<br>!
!med en radbrytning</p>!
<a>Det här är en länk</a>!
•  Attribut anger egenskaper. T.ex. <a
href=”index.html” title=”Startsida”>Länk</
a>!
•  Rubriker kan anges i sex nivåer h1–h6. De ska användas
i rätt ordning.
Struktur
•  Div – samlar element så att man ska kunna ge dem en
gemensam layout
•  Span – namnger en del av en eller flera textrader
•  Elementen kan märkas upp med följande attribut:
•  Class – det kan finnas flera element med samma class
•  Id – ett unikt namn
<div id=”ruta1” class=”faktaruta”>!
!…!
</div> !
CSS – för formatering
•  CSS = Cascading Style Sheets
•  Stilmallar som kan styra utseendet för flera sidor.
•  Webbläsaren har en inbyggd stilmall som styr det som
inte finns med i en sidas stilmall.
CSS – syntax
•  En selektor anger vilket html-element du vill påverka.
•  CSS-deklarationen innehåller en egenskap och ett värde.
•  Mellan varje deklaration används semikolon.
/*Det här är en kommentar. Sedan följer
två deklarationer för textstycken.*/!
p {!
color: blue;!
text-align: center;!
}!
•  Textsträngar skrivs inom ” ”eller ’ ’.
•  Länkar till andra filer skrivs: url(”bild.jpg”)!
Olika sorters selektorer
•  Typselektorer – p eller h1!
•  Id-selektorer – #ruta1!
•  Klasselektorer – .faktaruta eller div.faktaruta!
•  Pseudoklasser – a:visited, a:hover etc.
•  Attributselektorer – input[type="button”]!
•  Selektorerna kan kombineras:
#wrapper .faktaruta p!
•  Olika selektorer skiljs åt med komma:
#wrapper .faktaruta p,
#wrapper .faktaruta li!
Olika mått
•  % kan referera till olika saker beroende på var det
används, t.ex. i förhållande till textstorlek eller till sidan.
Flexibelt
•  1 em baseras på textstorleken. Flexibelt
•  1 px är 1 pixel. Storleken varierar beroende på skärmen
•  För decimaltal används punkt (.)
•  Utelämna enhet för värde 0
Färger
•  Anges framför allt med namn eller en kod för hexadecimal
RGB
T.ex. blue eller #0000FF!
•  Du kan hitta rätt färgkod här:
•  Photoshop
•  www.htmlfarg.nu
•  Traycolor – gratisprogram
•  ColorZilla – för Firefox
Hjälpmedel
•  Firebug – plugin till Firefox
•  Validera ofta
•  I Firefox-pluginen Web developer.
•  På webben: jigsaw.w3.org/css-validator
•  Testa i olika webbläsare. Buggar kan göra att framför allt
äldre versioner av Internet Explorer inte visar sidan
korrekt.
Övning 1
•  Gå till www.gp.se
•  Använd Firebug för att ta reda på vad den blå färgen som
används i menyerna har för kod.
•  Ta reda på vilka fonter som används i deras rubriker.
Textformatering
•  font-size – basstorleken i body anges i %, därefter
förslagsvis i em
•  font-family – använd familjer med olika alternativ,
avsluta med de allmänna serif eller sans-serif. Namn som
består av flera ord inom ” ”
T.ex. font-family: Helvetica, Arial, sans-serif;!
•  font-weight – normal/bold!
•  Textfärg – color!
•  Radhöjd – line-height!
•  Justering – text-align: left/right/center!
Samlingsegenskaper
•  En del deklarationer, t.ex. för font och background, kan
anges i en samlad deklaration.
T.ex. font: bold 62.5%/1.6em helvetica,
arial, sans-serif;!
Övning 2
•  Ladda ner övningsfilerna här: sarabritta.jadelius.se/
testwebbplats.zip
•  Använd denna webbplats som extra referens under
övningarna: www.w3schools.com/cssref
•  Gör först en standardformatering för text med selektorn
body (hela webbplatsen)
•  Formatera #bannertext och rubrikerna h1 och h2 –
ändra font och textstorlek
•  Gör de första orden i textstycket, med
klassen.inledning, fetstilt och med avvikande färg.
Länkar
•  Pseudoklasser är extra användbara: Hover, active,
focus, visited!
T.ex. a:hover!
•  De kan kombineras
T.ex. a:visited:hover!
•  Text-decoration – none/underline (Gäller inte
bara för länkar, men understrykning används med
försiktighet i vanlig text.)
Övning 3
•  Ändra färgen på alla länkar
•  Ändra så att understrykningen försvinner när man för
pekaren över länkarna.
Boxar
•  Varje element bildar en egen ”box”
•  Width och height definierar innehållet.
•  Padding – inom ram och bakgrundsfärg (kollapsar inte)
•  Ram – border. Border-style: solid/dotted/
dashed. Border-width och border-color.
•  Marginaler – utanför ram (kollapsar)
T.ex. margin-left: 10em;!
•  Måtten räknas samman för att få den verkliga storleken:
200px+5px+5px+5px+5px+5px+5px=230px
•  Deklarationerna för alla boxens sidor kan skrivas ihop i
ordningen – top, right, bottom, left eller top/
bottom, right/left!
T.ex. border: #111111 solid 1px 1px 2px 1px;!
eller padding: 2em 1em;!
i stället för border-color: #111111; borderstyle: solid; o.s.v
eller padding-top: 2em; padding-right: 1em
o.s.v.
Övning 4
•  Ange bredden 73em för boxen #wrapper!
•  Ange marginaler för #wrapper – inga marginaler ovanför
och nedanför och värdet auto på sidorna för att centrera
boxen.
Bakgrund
•  Färg – background-color, även transparent!
•  Bild – background-image, skrivs url(”bild.jpg”)/
none!
•  Placering – background-position: top/bottom,
left/right/center, med mått
•  Repetition – background-repat: repeat-x/
repeat-y/no-repeat!
•  Eller t.ex.:
background: #333333 url(”bild.jpg”)
repeat-y top center;!
Övning 5
•  Byt färg på bakgrunden för body och länka in bildfilen
med bakgrundsskugga.!
•  Ta bort alla marginaler runt body – tar bort eventuellt
mellanrum högst upp.!
Display
•  Olika element har olika standardvärde
•  Inline – visas på samma rad
•  Block – visas på egen rad
•  None – visas inte alls
Listor
•  Ul – unordered list (ol – ordered list)
•  Li – listpunkt
•  List-style-type: disc/none!
•  Menyer görs som listor i html, men stajlas om med CSS.
Övning 6
•  Gör om listan med klassen meny till en meny på en rad.
•  Ta bort marginaler och punkter/prickar för hela listan (ul).
•  Ange att listpunkterna (li) ska visas på en rad.
•  Ta bort länkarnas understreckning och ange att de ska
visas som block – då blir ytan som man kan klicka på
större.
Bilder
!T.ex. <img width=”10” height=”15”
src=”bild1.jpg”>!
!
•  För genomskinlighet i bilderna använd filformatet .png
•  Storleksangivelser i px passar oftast bäst.
Positionering och float
•  Position – placerar ett element enligt specifika mått.
Static (default)/absolute/relative/fixed!
•  Top/right/bottom/left – ange mått.
•  Float – gör så att boxar flyter åt ena eller andra hållet
så snart det finns tillräckligt utrymme. Left/right/none!
•  Clear – hindrar float åt ena eller båda hållen. Left/
right/both!
Övning 7
•  Ge #wrapper värdet position: relative!
•  Positionera #bannertext så att den hamnar bredvid
fotot på Selma Lagerlöf.!
•  Lägg de två kolumnerna bredvid varandra med hjälp av
float.!
•  Placera sidfoten underst, så att den inte ”flyter med”.!
Övning 8
•  Ge #banner en bakgrundsfärg och sätt höjden så att
den är lika stor som bilden. Ändra textfärgen.
•  Gör en linje ovanför sidfoten.
•  Snygga till sidfotens padding, margins och width.
•  Centrera texten i sidfoten.
Övning 9
•  Formatera ul, li och a för .meny så att den ser snygg
ut.
•  Formatera .bildtext.
Använda stilmallar
•  Extern – i separat dokument, länkas i head-tagg
•  Interna – skrivs direkt i head-tagg
•  Inline – med attributet style inom en html-tagg (inte att
rekommendera)
•  Länk till extern stilmall i head-tagg:
<link rel="stylesheet" type="text/
css" href="style.css”>!
!
•  Inuti annat CSS-dokument och i exempelvis Arena
@import(”style.css”);!
Hierarki mellan CSS-deklarationer
•  Viktighet – !important ger företräde (undvik)
•  Specificitet – t.ex. id framför enbart klass, framför enbart
typselektor
•  Ordning – mellan länkar till olika dokument och mellan
deklarationer inom dokumentet
Bra resurser
•  www.w3schools.com/css (pedagogisk, men ibland
föråldrad)
•  webdesignskolan.se/css (på svenska, men föråldrad)
•  developer.mozilla.org/en-US/learn/css (mer avancerad
och mer pålitlig än ovanstående)
Extrauppgifter
•  Content – t.ex. content:”Ny!”;!
•  Testa attributselektorer
•  Before, after – t.ex. p.ny:before:
{content:”Ny!”;}!
•  Lägg gärna till fler element att laborera med i htmldokumentet.