Må man være født med padding på beina for
å bli god i CSS?

Markus Rauhut

Må man være født med padding på beina for å bli god i CSS?

Hvorfor skal jeg bry meg?

📱🖥

Mine tanker 🤓

  • Skjermstørrelser
  • Nettleserstøtte
  • Komponenter
  • Lokalisering og internasjonalisering
  • Animasjon
  • Universell utforming
  • Tekniske begrensninger

Min tankeprosess 🤓

  • Virker det på mobil og desktop?
  • Støttes ulike nettlesere?
  • Hvilke komponenter brukes?
  • Brukes elementer til forskjellig kontekst?
  • Skal noe animeres?
  • Ivaretas universell utforming?
  • Finnes det tekniske begrensninger?

Foto: Heinrich-Böll-Stiftung (CC BY-SA 2.0)

Hvorfor er CSS så vanskelig?

DROPPE DENNE?

Foto: Heinrich-Böll-Stiftung (CC BY-SA 2.0)

6"

70"

Cascading gjør det vanskelig å holde styr på hva som gjelder når

Hvorfor er CSS så

!important?

Hvorfor er CSS

viktig?

CSS

HTML

JavaScript

Some of the trouble with HTML and CSS lies with the fact that both languages are fairly simple, and often developers don't take them seriously, in terms of making sure the code is well-crafted, efficient, and semantically describes the purpose of the features on the page. In the worst cases, JavaScript is used to generate the entire web page content and style, which makes your pages inaccessible, and less performant (generating DOM elements is expensive). In other cases, nascent features are not supported consistently across browsers, which can make some features and styles not work for some users. Responsive design problems are also common — a site that looks good in a desktop browser might provide a terrible experience on a mobile device, because the content is too small to read, or perhaps the site is slow because of expensive animations.

CSS

CSS

CSS

Kontrast

Desktop

Mobil

Header

Main

Sidebar

Footer

Footer

Main

Header

Hvordan kan man

bli god i CSS?

body {
  color: black;
}

.important {
  color: red;
}

span {
  color: blue;
}

span {
  color: blue;
}

Kaskade, Spesifisitet og Arv

margin

border

padding

content

Box-modellen

Flexbox / CSS Grid

1

2

3

Grunnkonsepter 🧱

  • Cascade og arv (fargeblindhet, kontrast)
  • Tekst (tekst i bilde, overskrifter og labels) 
  • Layout (rekkefølge, skjermretning, forstørrelse, navigering, instruksjoner, gjenkjennbarhet)

Grunnkonsepter 🧱

body {
  color: black;
}

.important {
  color: red;
}

span {
  color: blue;
}

span {
  color: blue;
}

Kaskade, Spesifisitet og Arv

<body>
  <article>
    CSS er
    <span class="important">
      veldig
    </span>
    <span>kult!</span>
  </article>
</body>

CSS er veldig kult!

Flexbox Zombies

CSS Diner

Flexbox Froggy

Grid Attack

Preprosessor (f.eks. SASS)

Block, Element, Modifier

/* Block component */
.btn {}

/* Element that depends upon the block */ 
.btn__search {}

/* Modifier that changes the style of the block */
.btn--big {}
$size-big: 2em;

.btn {
  &__search {
    text-transform: uppercase;
  }
  
  &--big {
    height: $size-big;
  }
}   

Linter

DevTools

Man trenger ikke å være født med padding på beina for
å bli god i CSS!

Må man være født med padding på beina for å bli god i CSS?

By Markus Rauhut

Må man være født med padding på beina for å bli god i CSS?

  • 119