SlideShare a Scribd company logo
1 of 105
CSS Kaskad
Olika slags stilmallar
HTML-dokument kan ha tre olika slags stilmallar .
1) Webbläsarens stilmall Webbläsare använder stilmallar på alla webbdokument. Dessa kallas webbläsarens inbyggda/standard stilmall.
2) Användarens stilmall De flesta moderna webbläsare ger användare möjlighet att tillämpa en egen stilmall.
3) Utvecklarens stilmall Webbutvecklare kan använda en eller flera stilmallar på ett  HTMLdokument.
Utvecklarens stilmall
Det finns  tre sätt  som utvecklaren kan lägga till stilmallar i CSS till ett  HTML-dokument.
1) Inline-stilar  används på element i HTML-koden genom att använda attributet style. <body> <h2  style=“color: red;” > Heading here </h2> <p> Inlinestil med attributet style
2) Interna stilar  placeras dokumentets huvud ( <head> )   med elementet  <style> <head> <title>Document title</titl <style type=&quot;text/css&quot; medi h2 { color: blue; } </style> Intern stil  ligger i <style>
3) Externa stilmallar  tillämpas   genom att använda  link  eller  @import . <title>Document title</titl <link rel=&quot;stylesheet&quot;  href=”my-styles.css”  type=”text/css&quot;  media=&quot;screen” /> Extern stillmall med elementet link
Alltför många CSS-regler!
Webbläsaren måste handskas med CSS-regler från både  webbläsarens, användarens och utvecklarens stilmallar .
Webbläsaren måste även handskas med CSS-regler som kommer från  olika   stilmallar från utvecklaren  (externa, interna och inline)
Förr eller senare måste webbläsaren handskas med CSS-regler som krockar .
Vad innebär “krockar”?
En krock uppträder när mer än en CSS-regel hänvisar till samma  element  och  egenskap . h2  {  color : blue; } h2  {  color : red; } CSS-regler som krockar
En krock kan uppstå mellan CSS-regler   i  olika slags stilmallar . h2 { color: blue; } h2 { color: red; } Webbläsarens stilmall Utvecklarens stilmall
En krock kan uppstå mellan CSS-regler  i  en eller flera av utvecklarens stilmallar . h2 { color: blue; } h2 { color: red; } h2 { color: green; } Utvecklarens stilmall 1 Utvecklarens stilmall 2
Vilka CSS-regler “vinner”?
Det finns  fyra steg för att avgöra vilken CSS-regel som kommer att “vinna” (användas i HTML-dokumentet)
Steg 1
Samla alla  deklarationer   som gäller för  ett   element och en egenskap  från webbläsarens, utvecklarens och användarens stilmallar.
Leta t.ex. fram alla  deklarationer  som gäller för: elementet =  h2   egenskapen=  color
h2  {  color : black; } Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall h2  {  color : green; } h2  {  color : blue; } #nav  h2  {  color : lime; } Samlade deklarationer
Om det finns deklarationer från  fler än en av dessa tre källor , fortsätt till steg 2.
Steg 2
Sortera de samlade deklarationerna efter  ursprung  (webbläsarens, utvecklarens och användarens stilmall) och  vikt  (normal eller !important).
Vad innebär !important?
Utvecklare kan använda “ !important ” till vilken deklaration som helst. h2 { color: red  !important ;} !important
Deklarationer med &quot;!important&quot;  går före normala deklarationer  (Normala deklarationer är deklarationer som inte innehåller !important).
Hur sorteras deklarationer?
webbläsarens stilmall normala deklarationer i användarens stilmall normala deklarationer i utvecklarens stilmall !important-deklarationer i utvecklarens stilmall !important-deklarationer i användarens stilmall 1 2 3 4 5 Från lägsta till högsta  prioritering
h2 { color: black; } Om det inte finns någon annan deklaration vinner webbläsaren 1. Webbläsarens stilmall Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
h2 { color: black; } h2 { color: green; } 2. Användarens normala stilmall Användarens normala deklarationer vinner över webbläsarens deklarationer Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
h2 { color: black; } h2 { color: green; } h2 { color: blue; } 3. Utvecklarens normala stilmall Utvecklarens normala deklarationer vinner över webbläsarens och användarens Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
h2 { color: black; } h2 { color: green; } h2 { color: blue; } h2 { color: lime !important; } Utvecklarens deklarationer med !important vinner över alla normala 4. !important från utvecklaren Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
h2 { color: black; } h2 { color: green; } h2 { color: red !important;} h2 { color: blue; } h2 { color: lime !important; } 5. !important från användaren Användarens !important-deklarationer vinner över utvecklarens !important-deklarationer Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
Men om två deklarationer har  samma ursprung och vikt ?
h2 { color: black; } h2 { color: green; } h2 { color: blue; } h2 { color: lime; } Två deklarationer med samma ursprung och vikt Två lika deklarationer Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
Om deklarationer har  samma ursprung och vikt  fortsätt till steg 3.
Steg 3
Om deklarationer har samma ursprung och vikt behöver  deklarationens selektorer  “räknas” för att se vilken deklaration som “vinner”.
Selektorer #nav h2  { color: blue; } h2.intro  { color: red; }  Selektorer
Fyra siffror  slås samman  (länkas som i en kedja) för att få fram ett slutgiltigt tal. a,b,c,d
Detta tal hänvisar man till som selektorns  specificitet .
Hur räknar man ut specificiteten?
A. Finns det någon inlinestil?   <h2  style=“color: red;” > This is a heading </h2> <p> Here is a paragraph of a = 1 x inline-stil b = 0 x ID c = 0 x klass d = 0 x element Specificitet = 1,0,0,0
B. Räkna antalet ID-selektorer. #nav  { color: red; } a = 0 x inline-stil b = 1 x ID c = 0 x klass d = 0 x element Specificitet = 0,1,0,0
C. Räkna antalet klasser, attribut och pseudo-klasser. .main  { color: red; } a = 0 x inline-stil b = 0 x ID c = 1 x klass d = 0 x element Specificitet = 0,0,1,0
D. Räkna antalet elementnamn eller pseudo-element. h2  { color: red; } a = 0 x inline-stil b = 0 x ID c = 0 x klass d = 1 x element Specificitet = 0,0,0,1
Notera följande om sammanslagningen
“ A ” slår alltid “ B ”, som alltid  slår “ C ”, som alltid slår “ D ”.
Oavsett hur många  ID  som används i en selektor kommer en  inline-stil  alltid att vinna.   (om inte !important används i deklarationen av ID)
Extern och intern stilmall  (utvecklarens stilmall) #one #two #three #four #five #six #seven #eight #nine #ten  { color: green; } HTML-dokument med inlinestil (utvecklarens stilmall) <h2  style=“color: purple;” > Den markerade stilen vinner p.g.a. specificitet -  1,0,0,0 slår 0,10,0,0
Oavsett hur många  klasser  som används av en selektor, vinner en  ID  enkelt.
Extern och intern stilmall  (utvecklarens stilmall) .one .two .three .four .five .six .seven .eight .nine .ten  { color: green; } #nav { color: lime; } Den markerade selektorn vinner p.g.a. specificitet -  0,1,0,0 slår 0,0,10,0
Oavsett hur många  element  som används av en selektor, vinner en  klass  enkelt.
Extern och intern stilmall  (utvecklarens stilmall) div div div div div form fieldset div label span   { color: green; } .intro { color: lime; } Den markerade selektorn vinner p.g.a. specificitet -  0,0,1,0 slår 0,0,0,10
Mer avancerade exempel på specificitet
ID och element #nav h2  { color: red; } a = 0 x inline-stil b = 1 x ID (#nav) c = 0 x klass d = 1 x element (h2) Specificitet = 0,1,0,1
Element och klass h2.intro  { color: red; } a = 0 x inline-stil b = 0 x ID c = 1 x klass (.intro) d = 1 x element (h2) Specificitet = 0,0,1,1
ID, element och pseudo-klasser #nav ul li a:hover  { color: a = 0 x inline-stil b = 1 x ID (#nav) c = 1 x pseudo-klass (:hover) d = 3 x element (ul, li, a) Specificitet = 0,1,1,3
Element och pseudo-element p:first-line  { color: green a = 0 x inline-stil b = 0 x ID c = 0 x klass d = 2 x element (p) och pseudo-element (:first-line) Specificitet = 0,0,0,2
Element och attribut-selektor h2[title= “ intro ” ]  { color: a = 0 x inline-stil b = 0 x ID c = 1 x attribut-selektor ([title=“intro”]) d = 1 x element (h2) Specificitet = 0,0,1,1
Om det ändå inte finns någon tydlig vinnare?
Selektorer med samma specificitet #nav h2  { color: red; } #nav h2  { color: green; } Specificitet = 0,1,0,1
Om det fortfarande inte finns  en klar vinnare  fortsätt till steg 4.
Steg 4
Om två deklarationer har samma vikt, ursprung och specificitet, vinner den som deklarerats  sist.
#nav h2 { color: green; } #nav h2 { color: red; } Deklarationer med samma vikt Den andra deklarationen vinner eftersom den kommer efter den första.
Dags för…  lite gissningar
Övning 1 webbläsare, användare, utvecklare
Del 1: Vem  vinner?
h2 { color: black; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall) h2 { color: green; }
h2 { color: black; } h2 { color: green; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall) Normal användardeklaration vinner över webbläsaren p.g.a. ursprung.
Del 2: Vem  vinner?
h2 { color: black; } h2 { color: green; } h2 { color: blue; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
h2 { color: black; } HTML-dokument med inline-stil (utvecklarens stilmall) h2 { color: green; } h2 { color: blue; } Utvecklarens normala deklaration vinner över webbläsaren och användaren p.g.a. ursprung. Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall)
Del 3: Vem  vinner?
h2 { color: black; } h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
h2 { color: black; } User style sheet h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } Normal inline-deklaration vinner över extern och intern p.g.a. specificitet:  1,0,0,0 slår 0,0,0,1 Webbläsarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
Del 4: Vem  vinner?
h2 { color: black; } h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } h2 { color: lime !important; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
h2 { color: black; } h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } h2 { color: lime !important; } Utvecklarens !important-deklaration vinner över normala deklarationer från webbläsare, användare och utvecklare Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
Del 5: Vem  vinner?
h2 { color: black; } h2 { color: green; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
h2 { color: black; } User style sheet h2 { color: green; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Utvecklarens !important inline-deklarationer vinner över utvecklarens !important externa och interna deklarationer p.g.a. specificitet: 1,0,0,0 slår 0,0,0,1 Webbläsarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
Del 6: Vem  vinner?
h2 { color: black; } h2 { color: green; } h2 { color: gray !important; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
h2 { color: black; } h2 { color: green; } h2 { color: gray !important; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Användarens !important-deklarationer vinner över  utvecklarens !important-deklarationer (oavsett om de är externa, interna eller inline). Webbläsarens stilmall Användarens stilmall Extern och intern stilmall  (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
Övning 2 utvecklarens externa, interna och inline CSS
Del 1: Vem  vinner?
h2.news { color: #eee; } h2 { color: blue; } Extern och intern stilmall  (utvecklarens stilmall)
h2.news { color: #eee; } h2 { color: blue; } Den markerade deklarationen vinner p.g.a.  specificitet - 0,0,1,1 slår 0,0,0,1 Extern och intern stilmall  (utvecklarens stilmall)
Del 2: Vem  vinner?
h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Extern och intern stilmall  (utvecklarens stilmall)
h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Den markerade deklarationen har samma specificitet som den första (0,0,1,1).  Men eftersom den är skriven sist vinner den! Extern och intern stilmall  (utvecklarens stilmall)
Del 3: Vem  vinner?
#nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Extern och intern stilmall  (utvecklarens stilmall)
#nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Den markerade selektorn vinner p.g.a. specifictet -  0,1,0,1 slår 0,0,1,1 och 0,0,0,1 Extern och intern stilmall  (utvecklarens stilmall)
Del 4: Vem  vinner?
#nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } div#nav h2 { color: lime; } Extern och intern stilmall  (utvecklarens stilmall)
#nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } div#nav h2 { color: lime; } Den markerade selektorn vinner p.g.a. specifictet -  0,1,0,2 slår 0,1,0,1 och 0,0,1,1 och 0,0,0,1 Extern och intern stilmall  (utvecklarens stilmall)
Russ Weakley Max Design Site:  maxdesign.com.au Twitter:  twitter.com/russmaxdesign Slideshare:  slideshare.net/maxdesign Linkedin:   linkedin.com/in/russweakley (översättning: Thomas Lindbjer)

More Related Content

Viewers also liked

Proyecto Final Fisica I
Proyecto Final Fisica IProyecto Final Fisica I
Proyecto Final Fisica I
Yuleni Glez
 
Skills Audit Form-November 20 (1)
Skills Audit Form-November 20 (1)Skills Audit Form-November 20 (1)
Skills Audit Form-November 20 (1)
Nick Turner
 
Portfolio Jeroen vnR
Portfolio Jeroen vnRPortfolio Jeroen vnR
Portfolio Jeroen vnR
j_or_n
 
Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...
Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...
Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...
José María
 
C:\Fakepath\Seis Maneras De Hacer Que La Web 2
C:\Fakepath\Seis Maneras De Hacer Que La Web 2C:\Fakepath\Seis Maneras De Hacer Que La Web 2
C:\Fakepath\Seis Maneras De Hacer Que La Web 2
pcelorio
 

Viewers also liked (14)

Zulianito 10
Zulianito 10Zulianito 10
Zulianito 10
 
Estudios que se pueden realizar en la ULPGC y ULLy notas de corte octubre de ...
Estudios que se pueden realizar en la ULPGC y ULLy notas de corte octubre de ...Estudios que se pueden realizar en la ULPGC y ULLy notas de corte octubre de ...
Estudios que se pueden realizar en la ULPGC y ULLy notas de corte octubre de ...
 
GWAVACon 2015: Open Horizons - iPrint
GWAVACon 2015: Open Horizons - iPrintGWAVACon 2015: Open Horizons - iPrint
GWAVACon 2015: Open Horizons - iPrint
 
Animoto - herramienta web 2.0
Animoto - herramienta web 2.0Animoto - herramienta web 2.0
Animoto - herramienta web 2.0
 
Proyecto Final Fisica I
Proyecto Final Fisica IProyecto Final Fisica I
Proyecto Final Fisica I
 
Polish language lessons lekcja 10b
Polish language lessons lekcja 10bPolish language lessons lekcja 10b
Polish language lessons lekcja 10b
 
Informe gobierno corporativo 2010
Informe gobierno corporativo 2010Informe gobierno corporativo 2010
Informe gobierno corporativo 2010
 
Skills Audit Form-November 20 (1)
Skills Audit Form-November 20 (1)Skills Audit Form-November 20 (1)
Skills Audit Form-November 20 (1)
 
Portfolio Jeroen vnR
Portfolio Jeroen vnRPortfolio Jeroen vnR
Portfolio Jeroen vnR
 
Fgr13 09
Fgr13 09Fgr13 09
Fgr13 09
 
imagen corporativa
imagen corporativa imagen corporativa
imagen corporativa
 
Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...
Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...
Personas mayores, discapacidad, integración, dependencia, asistencia, derecho...
 
Movilización de Workflows Corporativos
Movilización de Workflows CorporativosMovilización de Workflows Corporativos
Movilización de Workflows Corporativos
 
C:\Fakepath\Seis Maneras De Hacer Que La Web 2
C:\Fakepath\Seis Maneras De Hacer Que La Web 2C:\Fakepath\Seis Maneras De Hacer Que La Web 2
C:\Fakepath\Seis Maneras De Hacer Que La Web 2
 

Similar to Kaskad och specificitet i CSS (11)

HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - Extra
 
Clean code
Clean codeClean code
Clean code
 
4 html 2_ht13
4 html 2_ht134 html 2_ht13
4 html 2_ht13
 
Föreläsning 1: Grundläggande HTML
Föreläsning 1: Grundläggande HTMLFöreläsning 1: Grundläggande HTML
Föreläsning 1: Grundläggande HTML
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
 
Dreamweaver cs3 och css
Dreamweaver cs3 och cssDreamweaver cs3 och css
Dreamweaver cs3 och css
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 
VT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & WebbramverkVT2019 - DA355A - CSS Grid & Webbramverk
VT2019 - DA355A - CSS Grid & Webbramverk
 
VT2019 - DA355A - Intro HTML & CSS
VT2019 - DA355A - Intro HTML & CSSVT2019 - DA355A - Intro HTML & CSS
VT2019 - DA355A - Intro HTML & CSS
 
HT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLHT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTML
 
HT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLHT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTML
 

More from kurs-resurs (6)

Publicera YouTubevidoe på iItslearning
Publicera YouTubevidoe på iItslearningPublicera YouTubevidoe på iItslearning
Publicera YouTubevidoe på iItslearning
 
Lathund inför utvecklingssamtal - Itslearning
Lathund inför utvecklingssamtal - ItslearningLathund inför utvecklingssamtal - Itslearning
Lathund inför utvecklingssamtal - Itslearning
 
Css position
Css positionCss position
Css position
 
Global återställing av CSS
Global återställing av CSSGlobal återställing av CSS
Global återställing av CSS
 
Arv i CSS
Arv i CSSArv i CSS
Arv i CSS
 
CSS för utskrift
CSS för utskriftCSS för utskrift
CSS för utskrift
 

Kaskad och specificitet i CSS

  • 3. HTML-dokument kan ha tre olika slags stilmallar .
  • 4. 1) Webbläsarens stilmall Webbläsare använder stilmallar på alla webbdokument. Dessa kallas webbläsarens inbyggda/standard stilmall.
  • 5. 2) Användarens stilmall De flesta moderna webbläsare ger användare möjlighet att tillämpa en egen stilmall.
  • 6. 3) Utvecklarens stilmall Webbutvecklare kan använda en eller flera stilmallar på ett HTMLdokument.
  • 8. Det finns tre sätt som utvecklaren kan lägga till stilmallar i CSS till ett HTML-dokument.
  • 9. 1) Inline-stilar används på element i HTML-koden genom att använda attributet style. <body> <h2 style=“color: red;” > Heading here </h2> <p> Inlinestil med attributet style
  • 10. 2) Interna stilar placeras dokumentets huvud ( <head> ) med elementet <style> <head> <title>Document title</titl <style type=&quot;text/css&quot; medi h2 { color: blue; } </style> Intern stil ligger i <style>
  • 11. 3) Externa stilmallar tillämpas genom att använda link eller @import . <title>Document title</titl <link rel=&quot;stylesheet&quot; href=”my-styles.css” type=”text/css&quot; media=&quot;screen” /> Extern stillmall med elementet link
  • 13. Webbläsaren måste handskas med CSS-regler från både webbläsarens, användarens och utvecklarens stilmallar .
  • 14. Webbläsaren måste även handskas med CSS-regler som kommer från olika stilmallar från utvecklaren (externa, interna och inline)
  • 15. Förr eller senare måste webbläsaren handskas med CSS-regler som krockar .
  • 17. En krock uppträder när mer än en CSS-regel hänvisar till samma element och egenskap . h2 { color : blue; } h2 { color : red; } CSS-regler som krockar
  • 18. En krock kan uppstå mellan CSS-regler i olika slags stilmallar . h2 { color: blue; } h2 { color: red; } Webbläsarens stilmall Utvecklarens stilmall
  • 19. En krock kan uppstå mellan CSS-regler i en eller flera av utvecklarens stilmallar . h2 { color: blue; } h2 { color: red; } h2 { color: green; } Utvecklarens stilmall 1 Utvecklarens stilmall 2
  • 21. Det finns fyra steg för att avgöra vilken CSS-regel som kommer att “vinna” (användas i HTML-dokumentet)
  • 23. Samla alla deklarationer som gäller för ett element och en egenskap från webbläsarens, utvecklarens och användarens stilmallar.
  • 24. Leta t.ex. fram alla deklarationer som gäller för: elementet = h2 egenskapen= color
  • 25. h2 { color : black; } Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall h2 { color : green; } h2 { color : blue; } #nav h2 { color : lime; } Samlade deklarationer
  • 26. Om det finns deklarationer från fler än en av dessa tre källor , fortsätt till steg 2.
  • 28. Sortera de samlade deklarationerna efter ursprung (webbläsarens, utvecklarens och användarens stilmall) och vikt (normal eller !important).
  • 30. Utvecklare kan använda “ !important ” till vilken deklaration som helst. h2 { color: red !important ;} !important
  • 31. Deklarationer med &quot;!important&quot; går före normala deklarationer (Normala deklarationer är deklarationer som inte innehåller !important).
  • 33. webbläsarens stilmall normala deklarationer i användarens stilmall normala deklarationer i utvecklarens stilmall !important-deklarationer i utvecklarens stilmall !important-deklarationer i användarens stilmall 1 2 3 4 5 Från lägsta till högsta prioritering
  • 34. h2 { color: black; } Om det inte finns någon annan deklaration vinner webbläsaren 1. Webbläsarens stilmall Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
  • 35. h2 { color: black; } h2 { color: green; } 2. Användarens normala stilmall Användarens normala deklarationer vinner över webbläsarens deklarationer Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
  • 36. h2 { color: black; } h2 { color: green; } h2 { color: blue; } 3. Utvecklarens normala stilmall Utvecklarens normala deklarationer vinner över webbläsarens och användarens Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
  • 37. h2 { color: black; } h2 { color: green; } h2 { color: blue; } h2 { color: lime !important; } Utvecklarens deklarationer med !important vinner över alla normala 4. !important från utvecklaren Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
  • 38. h2 { color: black; } h2 { color: green; } h2 { color: red !important;} h2 { color: blue; } h2 { color: lime !important; } 5. !important från användaren Användarens !important-deklarationer vinner över utvecklarens !important-deklarationer Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
  • 39. Men om två deklarationer har samma ursprung och vikt ?
  • 40. h2 { color: black; } h2 { color: green; } h2 { color: blue; } h2 { color: lime; } Två deklarationer med samma ursprung och vikt Två lika deklarationer Webbläsarens stilmall Användarens stilmall Utvecklarens stilmall
  • 41. Om deklarationer har samma ursprung och vikt fortsätt till steg 3.
  • 43. Om deklarationer har samma ursprung och vikt behöver deklarationens selektorer “räknas” för att se vilken deklaration som “vinner”.
  • 44. Selektorer #nav h2 { color: blue; } h2.intro { color: red; } Selektorer
  • 45. Fyra siffror slås samman (länkas som i en kedja) för att få fram ett slutgiltigt tal. a,b,c,d
  • 46. Detta tal hänvisar man till som selektorns specificitet .
  • 47. Hur räknar man ut specificiteten?
  • 48. A. Finns det någon inlinestil? <h2 style=“color: red;” > This is a heading </h2> <p> Here is a paragraph of a = 1 x inline-stil b = 0 x ID c = 0 x klass d = 0 x element Specificitet = 1,0,0,0
  • 49. B. Räkna antalet ID-selektorer. #nav { color: red; } a = 0 x inline-stil b = 1 x ID c = 0 x klass d = 0 x element Specificitet = 0,1,0,0
  • 50. C. Räkna antalet klasser, attribut och pseudo-klasser. .main { color: red; } a = 0 x inline-stil b = 0 x ID c = 1 x klass d = 0 x element Specificitet = 0,0,1,0
  • 51. D. Räkna antalet elementnamn eller pseudo-element. h2 { color: red; } a = 0 x inline-stil b = 0 x ID c = 0 x klass d = 1 x element Specificitet = 0,0,0,1
  • 52. Notera följande om sammanslagningen
  • 53. “ A ” slår alltid “ B ”, som alltid slår “ C ”, som alltid slår “ D ”.
  • 54. Oavsett hur många ID som används i en selektor kommer en inline-stil alltid att vinna. (om inte !important används i deklarationen av ID)
  • 55. Extern och intern stilmall (utvecklarens stilmall) #one #two #three #four #five #six #seven #eight #nine #ten { color: green; } HTML-dokument med inlinestil (utvecklarens stilmall) <h2 style=“color: purple;” > Den markerade stilen vinner p.g.a. specificitet - 1,0,0,0 slår 0,10,0,0
  • 56. Oavsett hur många klasser som används av en selektor, vinner en ID enkelt.
  • 57. Extern och intern stilmall (utvecklarens stilmall) .one .two .three .four .five .six .seven .eight .nine .ten { color: green; } #nav { color: lime; } Den markerade selektorn vinner p.g.a. specificitet - 0,1,0,0 slår 0,0,10,0
  • 58. Oavsett hur många element som används av en selektor, vinner en klass enkelt.
  • 59. Extern och intern stilmall (utvecklarens stilmall) div div div div div form fieldset div label span { color: green; } .intro { color: lime; } Den markerade selektorn vinner p.g.a. specificitet - 0,0,1,0 slår 0,0,0,10
  • 60. Mer avancerade exempel på specificitet
  • 61. ID och element #nav h2 { color: red; } a = 0 x inline-stil b = 1 x ID (#nav) c = 0 x klass d = 1 x element (h2) Specificitet = 0,1,0,1
  • 62. Element och klass h2.intro { color: red; } a = 0 x inline-stil b = 0 x ID c = 1 x klass (.intro) d = 1 x element (h2) Specificitet = 0,0,1,1
  • 63. ID, element och pseudo-klasser #nav ul li a:hover { color: a = 0 x inline-stil b = 1 x ID (#nav) c = 1 x pseudo-klass (:hover) d = 3 x element (ul, li, a) Specificitet = 0,1,1,3
  • 64. Element och pseudo-element p:first-line { color: green a = 0 x inline-stil b = 0 x ID c = 0 x klass d = 2 x element (p) och pseudo-element (:first-line) Specificitet = 0,0,0,2
  • 65. Element och attribut-selektor h2[title= “ intro ” ] { color: a = 0 x inline-stil b = 0 x ID c = 1 x attribut-selektor ([title=“intro”]) d = 1 x element (h2) Specificitet = 0,0,1,1
  • 66. Om det ändå inte finns någon tydlig vinnare?
  • 67. Selektorer med samma specificitet #nav h2 { color: red; } #nav h2 { color: green; } Specificitet = 0,1,0,1
  • 68. Om det fortfarande inte finns en klar vinnare fortsätt till steg 4.
  • 70. Om två deklarationer har samma vikt, ursprung och specificitet, vinner den som deklarerats sist.
  • 71. #nav h2 { color: green; } #nav h2 { color: red; } Deklarationer med samma vikt Den andra deklarationen vinner eftersom den kommer efter den första.
  • 72. Dags för… lite gissningar
  • 73. Övning 1 webbläsare, användare, utvecklare
  • 74. Del 1: Vem vinner?
  • 75. h2 { color: black; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall) h2 { color: green; }
  • 76. h2 { color: black; } h2 { color: green; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall) Normal användardeklaration vinner över webbläsaren p.g.a. ursprung.
  • 77. Del 2: Vem vinner?
  • 78. h2 { color: black; } h2 { color: green; } h2 { color: blue; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 79. h2 { color: black; } HTML-dokument med inline-stil (utvecklarens stilmall) h2 { color: green; } h2 { color: blue; } Utvecklarens normala deklaration vinner över webbläsaren och användaren p.g.a. ursprung. Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall)
  • 80. Del 3: Vem vinner?
  • 81. h2 { color: black; } h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 82. h2 { color: black; } User style sheet h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } Normal inline-deklaration vinner över extern och intern p.g.a. specificitet: 1,0,0,0 slår 0,0,0,1 Webbläsarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 83. Del 4: Vem vinner?
  • 84. h2 { color: black; } h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } h2 { color: lime !important; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 85. h2 { color: black; } h2 { color: green; } <h2 style=“color: purple;”> h2 { color: blue; } h2 { color: lime !important; } Utvecklarens !important-deklaration vinner över normala deklarationer från webbläsare, användare och utvecklare Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 86. Del 5: Vem vinner?
  • 87. h2 { color: black; } h2 { color: green; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 88. h2 { color: black; } User style sheet h2 { color: green; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Utvecklarens !important inline-deklarationer vinner över utvecklarens !important externa och interna deklarationer p.g.a. specificitet: 1,0,0,0 slår 0,0,0,1 Webbläsarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 89. Del 6: Vem vinner?
  • 90. h2 { color: black; } h2 { color: green; } h2 { color: gray !important; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 91. h2 { color: black; } h2 { color: green; } h2 { color: gray !important; } <h2 style=“color: purple !important;”> h2 { color: blue; } h2 { color: lime !important; } Användarens !important-deklarationer vinner över utvecklarens !important-deklarationer (oavsett om de är externa, interna eller inline). Webbläsarens stilmall Användarens stilmall Extern och intern stilmall (utvecklarens stilmall) HTML-dokument med inline-stil (utvecklarens stilmall)
  • 92. Övning 2 utvecklarens externa, interna och inline CSS
  • 93. Del 1: Vem vinner?
  • 94. h2.news { color: #eee; } h2 { color: blue; } Extern och intern stilmall (utvecklarens stilmall)
  • 95. h2.news { color: #eee; } h2 { color: blue; } Den markerade deklarationen vinner p.g.a. specificitet - 0,0,1,1 slår 0,0,0,1 Extern och intern stilmall (utvecklarens stilmall)
  • 96. Del 2: Vem vinner?
  • 97. h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Extern och intern stilmall (utvecklarens stilmall)
  • 98. h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Den markerade deklarationen har samma specificitet som den första (0,0,1,1). Men eftersom den är skriven sist vinner den! Extern och intern stilmall (utvecklarens stilmall)
  • 99. Del 3: Vem vinner?
  • 100. #nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Extern och intern stilmall (utvecklarens stilmall)
  • 101. #nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } Den markerade selektorn vinner p.g.a. specifictet - 0,1,0,1 slår 0,0,1,1 och 0,0,0,1 Extern och intern stilmall (utvecklarens stilmall)
  • 102. Del 4: Vem vinner?
  • 103. #nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } div#nav h2 { color: lime; } Extern och intern stilmall (utvecklarens stilmall)
  • 104. #nav h2 { color: lime; } h2.news { color: #eee; } h2 { color: blue; } h2.news { color: green; } div#nav h2 { color: lime; } Den markerade selektorn vinner p.g.a. specifictet - 0,1,0,2 slår 0,1,0,1 och 0,0,1,1 och 0,0,0,1 Extern och intern stilmall (utvecklarens stilmall)
  • 105. Russ Weakley Max Design Site: maxdesign.com.au Twitter: twitter.com/russmaxdesign Slideshare: slideshare.net/maxdesign Linkedin: linkedin.com/in/russweakley (översättning: Thomas Lindbjer)