یکی از آزاردهندهترین بخشهای CSS در پروژههای بزرگ، تداخل اولویت (specificity) میان کتابخانهها و استایل خودمان است. دستور @layer به شما میگوید کدام گروه از قواعد بر دیگری غلبه کند، صرفنظر از specificity.
تعریف ترتیب لایهها
@layer reset, base, components, utilities;
@layer reset {
* { margin: 0; box-sizing: border-box; }
}
@layer components {
.btn { padding: .5rem 1rem; background: #2563eb; }
}
@layer utilities {
.p-0 { padding: 0; }
}لایهٔ بعدی همیشه بر قبلی برتری دارد؛ پس .p-0 در لایهٔ utilities حتی اگر انتخابگرش ضعیفتر باشد، بر .btn غلبه میکند.
نکتههای مهم
- استایلهایی که داخل هیچ لایهای نیستند از همهٔ لایهها قویترند.
- کتابخانههای خارجی را میتوانید با
@import url(...) layer(vendor)در یک لایهٔ پایین بیاورید تا بهراحتی بازنویسیشان کنید. - قواعد
!importantترتیب را برعکس میکنند: در آنها لایهٔ اول قویتر است.




