f03 – stilmallarorion.lnu.se/pub/education/course/1ik415/ht13/lecture/f03/f03 - css… · reset...

Post on 26-Jul-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

F03 – Stilmallar Föreläsning 3, HT2013 Stilmallar

Kurser: Webbteknisk introduktion 1IK415 Johan Leitet

F03 – Stilmallar Dagens agenda

•  CSS, Stilmallar •  Lokala, interna, externa •  Mediatyper •  Selektorer

- Taggselektorer - Klasselektorer - ID-selektorer

•  Egenskapsarv •  Pseudo-klasser och –element •  Kombinatorer •  Specificitet •  Ramverk •  Preprocessors

Stilmallar

Stilmallar på vår sida

o  Lokala stilar (inline styles) o  Inbäddade stilmallar (embedded styles) o  Externa stilmallar (external styles)

•  Webbläsarens inbyggda stilmall •  Användarspecifika ändringar •  Våra, utvecklarens, stilmallar:

Dessa kan vi påverka

Länka in CSS-regler

<p style="color:#6C9; text-align:center"> Centrerad, blåaktig text </p>

<head> …

<style type="text/css"> p { color: red; } </style> … </head>

<head> <title>Sida med stilmallar</title>

<link rel="stylesheet" type="text/css" href="basic.css" /> … </head>

Lokala stilmallar Inline styles

Inbäddade stilmallar Embedded styles

Externa stilmallar External styles

Media

Mediatyper <body> <head> <link rel="stylesheet" media="print" href="print.css" /> <title>Våra produkter</title> </head> …

Stilmallen "print.css" kommer bara att laddas då dokumentet skrivs ut. Vi har bland andra tillgång till: all, handheld, print, projection, speech, tv, screen

default

Syntax selektor { egenskap: värde; } selektor { egenskap: värde; egenskap: värde; egenskap: värde; }

h1 { color: #CDF; background-color: #9FF; }

Testrubrik

Skrivs antingen mellan <style></style> eller i en inlänkad css-fil

Exempel:

"regel"

“Hämta alla h1-element och ändra färgen till #CDF och bakgrundsfärgen till #9FF”

Selektorer

selektor { egenskap: värde; } selektor { egenskap: värde; egenskap: värde; egenskap: värde; }

taggselektorer klassvis

via ID

Taggselektor h1 { egenskap: värde; }

h1 em { egenskap: värde; }

<p> Detta är ett <em><strong>exempel</strong></em>. Ytterligare <strong>text</strong>… </p>

p em strong { egenskap: värde; }

Klasselektor

.avatar { egenskap: värde; }

<p class="avatar">…</p> … <p class="avatar">…</p> … <div class="avatar">…</div> … <p class="avatar">…</p>

p.avatar { egenskap: värde; }

<p class="avatar">…</p> … <p class="avatar">…</p> … <div class="avatar">…</div> … <p class="avatar">…</p>

.

Klasselektor

.avatar { egenskap: värde; } .active { egenskap: värde; }

<p class="avatar">…</p> … <p class="avatar active">…</p> … <div class="avatar active">…</div> … <p class="avatar">…</p>

.

ID-selektor

#content { egenskap: värde; }

<div id="content"> … </div> … <div id="footer">…</div>

#

På en och samma sida får det aldrig förekomma att två id-attribut har samma värde!

Egenskapsarv (property inheritance) Vissa egenskaper, satta på en förälder ärvs ned till dess barnnoder.

p { color: red; }

<p> Detta är ett <em><strong>exempel</strong></em> på <em>egenskapsarv</em>. </p>

Detta är ett exempel på egenskapsarv.

Alla egenskaper ärvs dock inte ned.

Referens för HTML och CSS

h"ps://developer.mozilla.org/  

Pseudoklasser

a:link { egenskap: värde; } a:visited { egenskap: värde; } a:focus { egenskap: värde; } a:hover { egenskap: värde; } a:active { egenskap: värde; }

orörd

besökt

fokus

muspekare över länken

aktiv, precis klickad

div p:first-child { egenskap: värde; }

Alla p-taggar som är förstabarn och har en förfader i form av div

<div> <p>Jag är första barn.</p> <ul> <li><p>Jag också!</p></li> </ul> <p>Inte jag :(</p> </div> <p>Inte jag heller :(</p>

Pseudoelement p:first-letter { font-size: 2em; }

Första bokstaven är större <p>Första bokstaven är större</p>

p:first-line { font-weight: bold; } Första textraden som webbläsaren rendrerar blir fetmarkerad

<p>Första textraden som webbläsaren rendrerar blir fetmarkerad</p>

Första textraden som webbläsaren rendrerar blir fetmarkerad I CSS2 finns även :before och :after

som kan användas för att dynamiskt lägga in innehåll före eller efter ett element.

Kombinatorer

li + li { color: red; } <ul> <li>Ett</li> <li>Två</li> <li>Tre</li> </ul>

•  Ett •  Två •  Tre

"Direkt syskon-väljare" (A+B)

<p> Detta är ett <em><strong>exempel</strong></em>. Ytterligare <strong>text</strong>… </p>

p em strong { egenskap: värde; }

Ättling (A B)

<p> Detta är ett <em><strong>exempel</strong></em>. Ytterligare <strong>text</strong>… </p>

p > strong { egenskap: värde; }

Barn (A>B)

Gruppering av selektorer Önskas liknande egenskaper på flera element så grupperar man dessa:

h1,h2,h3 { font-family: verdana, san-serif; color: #6CF; } h2 { text-decoration: underline; }

Rubriknivå 1 Rubriknivå 2 Rubriknivå 3

Grupperingen sker genom att

separera med ,

p.red strong.hidden, #content p:first-line { font-family: verdana, san-serif; color: #6CF; }

Det går bra att både gruppera och

kombinera selektorerna

Läsbar CSS Personliga stilar för att skriva CSS: #content p { font-size: 1.1em; color: #4D83A4; margin-left: 10px; }

#content { float: left; font-size: 1.6em; } #content p { color: #4D83A4; font-size: 1.1em; } #content p:first-letter { font-size: 1.7em; }

#content { font-size : 1.6em; float : left; margin-right: left; }

Kommentarer

/* Layout Using: Two columns floating layout Total width: 250px */ #content { margin-right: 250px; width: 600px; float: left; } /* Main Menu */ ol li { float: left; }

Kommentarerna

känns igen från t.ex.

C#, PHP etc.

// stöds inte!

Specificity Olika selektorer har olika "vikt". Ju högre vikt,

desto högre prioritet.

h"p://coding.smashingmagazine.com/2007/07/27/css-­‐specificity-­‐things-­‐you-­‐should-­‐know/  

p#firstptagg { color: yellow; } p.content { color: green; } p { color: red; } p { color: blue; }

id-elektorer (vikt 100) har högst prioritet följt av klasselektorer (vikt 10) och lägst prioritet har övriga selektorer (vikt 1)

101 11

1 1+senast angiven

Rekommenderad läsning

Ordningen spelar roll <head> …

<link rel="stylesheet" href="basic.css" /> <style> h3 { text-align: right; font-size: 20px; } p { color: blue; } </style> </head> <body> <h3 style="font-size: 10px">Rubrik</h3> <p class="intro">Lite text…</p> </body>

h3 { color: red; text-align: left; font-size: 8px; } p.intro { color: silver; }

Rubrik Lite text...

Rubrik Lite text...

10px

h3 { color: red; text-align: right; font-size: 10px; } p.intro { color: silver; }

Effektiv stilmall: basic.css

Vad händer om man byter plats på <style> och <link>?

Vad? Typsnitt/Text Storlekar, avstånd, typsnitt

Grafik Färger, ramar, skuggor, effekter, bakgrundsbilder/sprites

Layout Boxar, positionering, layoutmodeller

Animationer Transformationer, transitioner

CSS1 -> CSS2 -> CSS3

h"p://www.w3.org/Style/CSS/current-­‐work  

•  Selektorer •  Multi-column layout •  Media Queries •  Color •  Text •  Fonts •  Grid Layout •  …

CSS3 h"p://www.paulrhayes.com/experiments/cube-­‐3d/  

h"p://beta.theexpressiveweb.com  

h"p://caniuse.com/  

Webbläsarspecifika prefix

#someid { -webkit-transition: opacity 13s; -moz-transition: opacity 13s; -o-transition: opacity 13s; -ms-transition: opacity 13s; transition: opacity 13s; }

Reset CSS * {margin:0; padding:0}

Att använda * är inget man rekommenderar då det tar hårt på webbläsaren att gå igenom samtliga element på webbsidan och nollställa dess marginaler och padding. Bättre är då att specificera exakt vilka element som ska nollställas. Enklast är att använda något av alla de nollställningsstilmallar som finns att hitta på nätet.

CSS  Global  Styles  Re

set  av  Kyle  Neath  

CSS  Global  Reset  av  Chris.an  Montoya  

CSS  Reset  Rel

oaded  av  Eric  

Meyer  

Ramverk

•  Ökad produktivitet •  Du undviker vanliga misstag •  Du arbetar in en standard för namngivning •  Förenklar samarbete •  Du slipper tänka på webbläsarkompabilitet •  Du får ren och välstrukturerad kod

Fördelar •  Tar tid att lära sig •  Riskerar att ärva fel och buggar •  Du mister genuin kunskap om CSS •  Källkod som innehåller mycket onödig kod •  Du riskerar att fastna i gamla hjulspår

Nackdelar

Källa:  h6p://www.smashingmagazine.com/2007/09/21/css-­‐frameworks-­‐css-­‐reset-­‐design-­‐from-­‐scratch/  

Preprocessors

lesscss.org

sass-­‐lang.com  

learnboost.github.io/stylus/  

•  Variabler •  Nästling •  Mixins •  Arv •  Operatorer •  ….

h6p://net.tutsplus.com/tutorials/html-­‐css-­‐techniques/sass-­‐vs-­‐less-­‐vs-­‐stylus-­‐a-­‐preprocessor-­‐shootout/  

top related