CSS @layer
La direttiva CSS @layer organizza gli stili in livelli gerarchici
Con @layer puoi creare livelli CSS separati che controllano la priorità delle regole nella cascata, a prescindere dalla specificità o dall’ordine di caricamento nel file. È ideale per gestire grandi progetti, librerie di componenti o override modulari. I livelli vengono valutati nell’ordine in cui sono elencati nella dichiarazione @layer a, b, c.
Sintassi
@layer a, b, c | nome-layer { /* dichiarazioni CSS */ }
Uso e ordinamento dei Layer
La direttiva @layer ti consente di organizzare il tuo CSS in "livelli" (layer) separati, in modo da migliorare la gestione dell'override e la struttura del codice.
Puoi definire uno o più layer nel CSS e usarli per controllare la **priorità** delle regole applicate. L'ordine di dichiarazione dei layer è fondamentale:
-
Ordine di applicazione: I layer vengono applicati in ordine di definizione. Il layer definito per **ultimo** ha la **priorità più alta**.
@layer base, override; -
Definizione di un Layer: La sintassi è la seguente:
@layer nome-layer { ... }
Conclusione:
Ordine dei layer: I layer vengono applicati in ordine di definizione (quello scritto per ultimo ha la priorità più alta).
Ordinamento manuale: Usare @layer base, component, override; permette di stabilire chiaramente quale layer debba avere la priorità.
Esempio Direttiva: @layer
Codice Esempio: @layer
/* Ordina i layer manualmente, dando priorità più alta a 'base' */@layer component, override, base;
/* Definiamo i layer */@layer base {
.layer-example { color: red; }
}@layer component {
.layer-example { color: green; }
}@layer override {
.layer-example { color: blue; }
}
Contenuto Esempio: @layer
Esempio di utilizzo di @layer per controllare la priorità degli stili
In questo esempio, <h1> risulterà rosso perché il layer base ha la priorità più alta rispetto agli altri.
Example Layer
CSS e HTML per @layer:
<style>
/* Ordina i layer manualmente, dando priorità più alta a 'base' */
@layer component, override, base;
/* Definiamo i layer */
@layer base {
.layer-example { color: red; }
}
@layer component {
.layer-example { color: green; }
}
@layer override {
.layer-example { color: blue; }
}
</style>
<h1 class="layer-example">Example Layer</hi>
Comportamento con l'uso di @import
Se vuoi importare dei layer da un altro file CSS, puoi specificare l'ordine dei layer in questo modo:
Codice Esempio: @import layer
@import url("component.css") layer(component);
@import url("base.css") layer(base);
Sintesi dell'ordine di applicazione
-
I layer vengono applicati in base al loro ordine di registrazione: quello registrato per ultimo ha la priorità più alta. È possibile definirlo manualmente tramite
@layer nome1, nome2, .... - Le regole all'interno di un layer possono essere sovrascritte da regole presenti in layer con priorità superiore.
-
Le regole CSS non inserite in alcun layer vengono automaticamente associate al layer implicito
default, che ha priorità superiore rispetto ai layer dichiarati.
Note:
Le indicazioni dei Browser supportati sono superate grazie alla loro costante evoluzione, si consiglia di verificare la compatibilità dei vari browser eseguendo il test cliccando qui sotto.

IP: 216.73.216.214