I dagens CSS skal vi se på @layer
Som man kanskje allerede vet så har CSS et hierarki på hvordan CSS reglene blir tatt i bruk. Noe av det er rekkefølgen den er skrevet i, ellers kan man lage mer spesifikke regler ved å bruke ID-er eller klasser. Selvfølgelig har man !important
om en siste utvei, men visste du at man kan definere rekkefølge og endre på hierariket selv?
Med @layers
kan man lage egne lag som man igjen kan bestemme rekkeføkgen på. Dette kan man gjøre ved å først definere rekkefølgen
@layer theme, layout, utilities;
I dette eksempelet vil man lage tre lag, theme
, layout
og utilities
. Regler som overlapper fra utilities
vil ha presendens over de som er i de to første lagene, og så videre.
Det som er viktig å merke seg at regler som er definert utenfor et lag har høyere viktighet enn regler i et lag. Så i følgende eksempel vil tekstfargen fortsatt være lilla, selv om regel inne i laget er mer spesifikk.
p {
color: rebeccapurple;
}
@layer type {
.box p {
color: green;
}
}
Det er med andre ord fortsatt viktig å være klar over hierarkiet av viktighet når man jobber med lag, men det gir deg litt mer frihet til å definere CSS uten å nødvendigvis tenke på rekkefølgen i fila.
@layer
har god støtte i alle nettlesere!