Het CSS Typed Object Model (OM)
Werk met CSS-waarden als getypeerde JavaScript-objecten in plaats van strings met de CSS Typed OM API.
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…</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…</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…</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…</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…</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-expressiesCSSColorValue: 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.
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
- Het CSS Typed Object Model (OM)
- CSS Properties and Values API (@property)
- CSS Paint API: Worklets
- CSS Layout API en scope