Att ändra bakgrund

Från Webbling
Hoppa till: navigering, sök

Vi ska ta och prova på hur man kan använda sig av CSS för att ange lite intressantare bakgrunder på sin webbsida.

Ändra bakgrundsfärg

För att ändra bakgrundsfärg använder man sig av egenskapen background-color. Som värde till egenskapen anger man färg på något av de sätt som vi redovisade i färg-aktiviteten. Om vi vill sätta blå bakgrund på hela sidan skulle vi kunna göra så här:

body {
  background-color: blue;
}

Skulle vi vilja ha en mörkare blå, kanske med blått satt till 50 % kunde vi göra så här istället.

body {
  background-color: #000080;
}

Ändra text-/förgrundsfärg

Kanske du tycker att det blev lite svårläst med svart text på mörkblå bakgrund? I så fall måste du även ändra textfärgen. Det gör man med egenskapen color. Självklart godtar även denna egenskap alla de varianter som finns för att ange färger. Låt oss säga att du vill ha vit färg, då kunde du göra så här:

body {
  color: white;
}

Man kan förstås sätt flera egenskaper samtidigt i varje CSS-regel. Så om vi både vill sätta bakgrundsfärg och textfärg, skull det kunna bli så här:

body {
  background-color: #000080;
  color: white;
}

Det spelar ingen roll i vilken ordning du sätter egenskaperna, så länge det inte är någon egenskap som skriver över en annan. Detta kan inträffa med såkallade samlingsegenskaper, eller kortegenskaper, som sätter flera egenskaper med ett enda egenskaps-kommando. Kortkommandot background som gör att man kan sätta alla följande egenskaper samtidigt i en enda egenskapstilldelning; background-color, background-image, background-repeat, background-attachment och background-position. Om man redan satt background-color och sedan använder background, kommer den senare att skriva över det värde som sattes i den första.

Att sätta en bakgrundsbild

Vill du göra din sida lite roligare, kan det vara trevligt att ange en bild som bakgrund. Kom dock ihåg att bilder lätt kan göra sidan mer svårläst. Se därför till att använda bilder som har bra kontrast gentemot resten av innehållet!

För att kunna sätta en bakgrundsbild måste du veta URL:en som leder till bilden. Låt oss säga att det i vårt fall är det en fil som heter bakgrund.jpg som vi vill visa. Låt oss även säga att bilden ligger i samma katalog som det HTML-dokument som vi jobbar med. För att ange bakgrundsbilden skulle vi då kunna skriva så här:

body {
  background-image: url("bakgrund.png");
}

Vi kan ta och sätta in detta i en exempelsida och se hur det blir att se ut, t.ex. så här:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Bakgrundsdemo 1</title>
    <style>
      body {
        background-image: url("bakgrund.png");
      }
    </style>
  </head>
  <body>
    <h1>En bakgrundsdemo</h1>
  </body>
</html>

Här kan du se resultatet.

Eftersom det var en rätt liten bild, så kommer bilden att upprepas ett antal gånger såväl horisontellt som vertikalt. Det finns lite olika sätt vi kan styra om vi vill ha detta beteende eller ej.

Styra bildupprepning

Defaultbeteendet är att då bakgrundsbilder är mindre än webbfönstret, så kommer bilden att uppdateras flera gånger bredvid varandra så att de täcker hela den tillgängliga ytan. Om vi vill ändra detta beteende använder vi oss av background-repeat-egenskapen. De vanligaste värdena för denna egenskap är:

repeat

Defaultvärdet, bilden upprepas i bägge leder om så behövs.

repeat-x

Bilden upprepas enbart i x-led.

repeat-y

Bilden upprepas enbart i y-led.

no-repeat

Bilden upprepas inte, utan visas enbart en gång.

Sätta storlek på en bakgrundsbild

Bakgrundsbildens storlek sätt med egenskapen background-size. Denna kan ta flera olika parametrar. Vi tar och går igenom dem...

Måttenhet

Man kan använda alla CSS-måttenheter tillsammans med background-size. Bilden kommer då att sättas till den storlek som man anger. Om den angivna storleken skiljer sig ifrån bildens verkliga storlek, så kommer webbläsaren att skala om bilden till den angivna storleken.

Man kan ange flera, samtidiga värden till denna egenskap. Vi går igenom vad som händer med olika kombinationer av värden.

Om vi enbart anger en storlek, t.ex.:

body {
  background-image: url("bakgrund.png");
  background-size: 400px;
}

Jämför exempel1 med exempel2. I det första fallet har vi en oskalad bild, medan vi i det andra fallet har en bild som skalats om så att bredden är 400px. Då vi enbart anger ett värde är det alltid bredden som anges och bildens höjd skalas om proportion i till den angivna bredden. Detta gör att bilden inte blir att uttänjd och konstig ut. Det är sällan man vill skala om bilder så de inte har samma skal-proportioner.

Om vi anger två storleksvärden, t.ex.:

body {
  background-image: url("bakgrund.png");
  background-size: 400px 200px;
}

Jämför exempel2 med exempel3. I detta fall anger vi såväl bredd som höjd. För att demonstrera detta har jag satt "konstiga" proportioner på bilden, vilket gör att den tänjts ut.

Som specialfall kan man sätta nyckelordet auto istället för en av storlekarna. Då anger man att bilden ska skalas i proportion till den andra angivelsen. Om vi t.ex. vill sätta en bilds höjd och hålla dess proportioner i bredd, kan vi ange:

body {
  background-image: url("bakgrund.png");
  background-size: auto 200px;
}

Att sätta den andra parametern till auto, är det samma som att enbart ange ett värde.

contain

Detta kodord anger att bilden ska skalas om till den största möjliga storlek där bilden är fullt synlig på skärmen, såväl i bredd som i höjd. Detta kan alltså göra att bilden inte täcker hela skärmytan om dess proportioner är de samma som skärmens proportioner.

cover

Detta värde anger att bilden ska skalas upp så att den täcker hela skärmyta, såväl i bredd som i höjd. Bilden skalas så den bibehåller sina proportioner. Detta kan göra att delar av bilden hamnar utanför den synliga ytan.

Nästa aktivitet

Boxmodellen