CSS Academy · Les

Het CSS Typed Object Model (OM)

Werk met CSS-waarden als getypeerde JavaScript-objecten in plaats van strings met de CSS Typed OM API.

Les 1 van 413 stappen

Het CSS Typed Object Model (OM) is een gratis CSS Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject CSS Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus CSS Academy bevat in totaal 4 lessen.

Wat is CSS Typed OM?

Het CSS Typed Object Model (Typed OM) maakt deel uit van het CSS Houdini-project. Het stelt CSS-waarden beschikbaar als getypeerde JavaScript-objecten in plaats van gewone tekenreeksen, waardoor snellere bewerking, uitgebreidere rekenkundige bewerkingen en typeveiligheid mogelijk worden.

Oud versus nieuw

Het traditionele CSSOM retourneert tekenreeksen; Typed OM retourneert objecten met type-informatie:

<p id="demo" style="opacity: 0.5;">Typed OM demo element</p>
<p id="output">Reading style values&hellip;</p>
<script>
  const demo = document.getElementById('demo');
  const output = document.getElementById('output');

  // Old CSSOM (string)
  const oldValue = demo.style.opacity; // '0.5'

  // CSS Typed OM (typed object)
  const typed = demo.computedStyleMap().get('opacity');
  // CSSUnitValue { value: 0.5, unit: 'number' }

  output.textContent = 'old (string): "' + oldValue + '"  |  typed OM: value=' + typed.value + ', unit=' + typed.unit;
</script>

computedStyleMap()

Open getypeerde berekende waarden voor elk element:

<div id="box">400px wide box</div>
<p id="output">Reading computed width&hellip;</p>
<script>
  const box = document.getElementById('box');
  const output = document.getElementById('output');

  const styles = box.computedStyleMap();
  const width = styles.get('width');
  console.log(width.value); // 400
  console.log(width.unit);  // 'px'

  output.textContent = 'width.value = ' + width.value + ', width.unit = "' + width.unit + '"';
</script>

attributeStyleMap voor stijlen in het element

Stel getypeerde stijlwaarden in het element in en lees ze uit via element.attributeStyleMap:

<div id="box">Inline-styled box</div>
<p id="output">Setting styles via attributeStyleMap&hellip;</p>
<script>
  const box = document.getElementById('box');
  const output = document.getElementById('output');

  box.attributeStyleMap.set('opacity', CSS.number(0.5));
  box.attributeStyleMap.set('margin-top', CSS.px(16));

  const opacity = box.attributeStyleMap.get('opacity');
  output.textContent = 'opacity.value = ' + opacity.value;
</script>

Fabrieksmethoden voor CSS-getallen

De CSS-naamruimte biedt fabrieksmethoden om getypeerde waarden te maken:

<div id="box">Factory methods demo</div>
<p id="output">Computing&hellip;</p>
<script>
  const output = document.getElementById('output');

  const px = CSS.px(100);         // CSSUnitValue(100, 'px')
  const percent = CSS.percent(50); // CSSUnitValue(50, 'percent')
  const em = CSS.em(1.5);          // CSSUnitValue(1.5, 'em')
  const number = CSS.number(0.5);  // CSSUnitValue(0.5, 'number')
  const deg = CSS.deg(180);        // CSSUnitValue(180, 'deg')

  output.textContent = [px, percent, em, number, deg]
    .map(v => v.value + v.unit).join(', ');
</script>

Rekenen met getypeerde waarden

CSSMathValue maakt rekenkundige bewerkingen voor CSS in JavaScript mogelijk zonder tekenreeksen samen te voegen:

<div id="box">Math on typed values</div>
<p id="output">Calculating&hellip;</p>
<script>
  const output = document.getElementById('output');

  const width = CSS.px(100).add(CSS.percent(10));
  // Equivalent to calc(100px + 10%)

  const margin = CSS.px(16).mul(2);
  // 32px

  output.textContent = 'width = ' + width.toString() + '  |  margin = ' + margin.value + margin.unit;
</script>

Prestatievoordelen

Typed OM is aanzienlijk sneller dan het op tekenreeksen gebaseerde CSSOM voor frequente bewerkingen (bijvoorbeeld animatieframes). Waarden hoeven niet bij elke toegang opnieuw uit tekenreeksen te worden geanalyseerd — het zijn al gestructureerde objecten.

Typen van CSSStyleValue

Typen waarden van Typed OM zijn onder andere:

  • CSSUnitValue: getal + eenheid (100px)
  • CSSKeywordValue: trefwoord (auto, none)
  • CSSImageValue: afbeelding (url())
  • CSSMathValue: calc-expressies
  • CSSColorValue: kleurwaarden (experimenteel)

Typed OM in animaties

Gebruik in de Web Animations API getypeerde waarden voor nauwkeurigere controle over animaties:

<div id="box">Animated via Typed OM</div>
<script>
  const box = document.getElementById('box');
  box.animate(
    [{ opacity: CSS.number(0) }, { opacity: CSS.number(1) }],
    { duration: 300, fill: 'forwards' }
  );
</script>

Browserondersteuning

CSS Typed OM (Level 1) wordt ondersteund in Chrome 66+ en Edge 79+. De ondersteuning in Firefox en Safari is gedeeltelijk of vereist het inschakelen van functies. Controleer caniuse.com voordat je dit in productie gebruikt. Het API-oppervlak wordt nog steeds uitgebreid.

Wanneer gebruik je Typed OM?

Gebruik Typed OM wanneer je:

  • CSS Paint- of Layout Worklets bouwt (vereist)
  • Veel elementen per frame in JavaScript animeert
  • CSS-hulpmiddelen of voorverwerkers bouwt
  • Type-gecontroleerde bewerking van CSS-waarden nodig hebt

Korte controle

Wat retourneert element.computedStyleMap().get("width") in vergelijking met getComputedStyle(element).width?

Samenvatting

CSS Typed OM vervangt het op tekenreeksen gebaseerde CSSOM door getypeerde JavaScript-objecten. Gebruik computedStyleMap() voor leestoegang en attributeStyleMap om stijlen in het element te schrijven. CSS-fabrieksmethoden (CSS.px(), CSS.percent()) maken getypeerde waarden. De API is sneller dan bewerking op basis van tekenreeksen en vereist voor Paint- en Layout Worklets.

Gratis beginnen

Leer CSS met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
40
Lessen
159

Veelgestelde vragen

Is de les “Het CSS Typed Object Model (OM)” gratis?

Ja — de volledige tekst van “Het CSS Typed Object Model (OM)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus CSS Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus CSS Academy bevat in totaal 4 lessen.

Wat leer ik in “Het CSS Typed Object Model (OM)”?

Werk met CSS-waarden als getypeerde JavaScript-objecten in plaats van strings met de CSS Typed OM API. Je oefent met CSS Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met CSS Academy te beginnen?

Ervaring vooraf is niet nodig. CSS Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Het CSS Typed Object Model (OM)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over CSS Academy?

Ja. Elke les over CSS Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Het CSS Typed Object Model (OM)
  2. CSS Properties and Values API (@property)
  3. CSS Paint API: Worklets
  4. CSS Layout API en scope
← Terug naar CSS Academy