概览`@scope` 能让选择器在给定根内生效,从而限制级联影响范围。与 `@layer` 配合可实现自下而上的样式治理,减少全局覆盖与命名冲突,提升组件复用性。基础用法@scope (.card) {
:scope { /* 作用于 .card 根 */
padding: 1rem;
border: 1px solid #eee;
}
.title { font-weight: 600; }
.desc { color: #555; }
}
多层作用域与优先级@layer reset, base, components;
@layer components {
@scope (.modal) {
.title { font-size: 1.25rem; }
.actions { display: flex; gap: .5rem; }
}
}
结合状态选择器@scope (.card:is(.active, .warning)) {
.title { color: oklch(60% 0.12 250); }
}
工程要点将组件样式封装为 `@scope + @layer`,避免全局选择器污染。在复杂页面中对弹层、卡片等局部组件使用独立作用域。搭配设计令牌与容器查询,提升适配与维护性。验证与指标浏览器:Chrome 120+、Safari 17+、Firefox 120+在多组件复杂页面无选择器冲突与覆盖抖动;样式变更影响面可控

发表评论 取消回复