sandra.larsson@chasacademy.se
Cascading Style Sheet
{}
Märkspråk
Stilmallsspråk
Programmeringspråk
Struktur/Innehåll
Utseende
Funktion
Webbens grundläggande byggstenar
CSS används alltså för att ge färg och form till webbsidor — till exempel, för att ändra typsnitt, färg, storlek och avstånd på ens innehåll, dela in det i kolumner, lägga till animation m.m.
CSS är alltså en stilmall. "Cascade" syftar till att CSS deklarationer längre ner i stilmallen (css-filen) skriver över tidigare deklarationer.
Olika sätt att tillämpa CSS i HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<title>CSS Intro</title>
</head>
<body>
<!-- Här är innehållet -->
</body>
</html>
CSS deklarationerna är samlade i en och samma fil
body {
background: blue;
}
h1 {
color: #000;
margin-left: 20px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<title>CSS Intro</title>
<style>
body {
background: blue;
}
h1 {
color: #000;
margin-left: 20px;
}
</style>
</head>
<body>
<!-- Här är innehållet -->
</body>
</html>
CSS deklarationerna är samlade i <style>-taggen
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/style.css">
<title>CSS Intro</title>
</head>
<body style="background: blue;">
<h1 style="color: #000; margin-left: 20px;">Testing CSS</h1>
</body>
</html>
CSS deklarationerna anges som attribut på elementet
Selector
Property
Declaration
Value
CSS Syntax
CSS Syntax
h1 {
font-family: 'Arial';
font-size: 18px;
color: hotpink;
}
CSS Properties
Selektorn anger vilket eller vilka element som ska applicera de definierade egenskaperna
h1 {
font-family: 'Arial';
font-size: 18px;
color: hotpink;
}
em, li {
font-family: 'Roboto';
font-style: italic;
color: rgb(100, 100, 100);
}
Selektorn anger vilket eller vilka element som ska applicera de definierade egenskaperna
Elementselektorn
väljer alla p-element
p {
color: hotpink;
}
Gruppselektorn
väljer både h1-elementen samt p-elementen
h1, p {
color: hotpink;
}
Arvselektorn (Descendant)
väljer endast länkarna (a) som är child till ett listelement
li a {
color: hotpink;
}
Använda en class
väljer endast de element med klassnamnet "main-nav"
.main-nav {
color: hotpink;
}
<nav class="main-nav">This is my main nav</nav>
Punkten!
Till en början, fokusera endast dessa fyra selektorer:
De räcker till en början, lär dig fler efter hand...
eng. Inheritance
Element kommer att ärva egenskaper från dess förälder (överordnat element).
👨👩👦👦
<body>
<div>
<h1>En rubrik</h1>
<p>En text som är <em>betonad</em></p>
<ul>
<li>HTML</li>
<li>CSS</li>
</ul>
</div>
</body>
Nästlade element där underordnade element ärver egenskaper från överordnade, d.v.s parent/child
DOM-träd
De flesta element är block-element per default
Margin är utrymmet runt ett element. Vi kan kontrollera det i fyra riktningar.
margin: 10px 20px 30px 40px;
margin: 10px 20px;
margin: 10px;
TOP
RIGHT
BOTTOM
LEFT
Padding är utrymmet inuti element. Syntaxen är samma som margin och även dess shorthand.
Skillnaden med padding är att det inkluderar bakgrundsfärgen.
Border skapar en kant runt elementet. Har tre egenskaper.
p {
border-width: 2px;
border-style: solid;
border-color: #000;
}
p {
border: 2px solid #000;
}
Bredd och höjd, width och height, anger enbart storleken på innehållsdelen och övriga delar av boxen ligger utanför detta värde.
För att få ut den totala bredden/höjden som din box kommer att ta upp måste du själv summera ihop width, bredden på padding och bredden på eventuell kantlinje (border). Detta kan bli rätt krångligt om du vill ange en exakt storlek på en box.
Detta måttsätt är default (box-sizing: content-box;)
Med denna variant så inkluderar värdet som man anger för bredd eller höjd, width och height, såväl utfyllnad (padding), som kantlinje (border). Marginalen, margin, har dock en egen bredd. Detta gör att det är mycket enklare att anpassa boxstorleken till hela innehållet.
I de fall border-box gäller får elementet alltså den bredd som sätts i width oavsett vilka andra egenskaper som sätts (det samma gäller för höjd-egenskapen). Detta gör det mycket enklare att passa samman flera element på samma rad.
/* Lägg högst upp i CSS. * = alla element*/
* {
box-sizing: border-box;
}
ÖVNING