如何在一个类伞下隔离整个CSS文件
如果我有数百个像下面这样的简单CSS声明,有没有一种方法可以封装所有的CSS,这样只有当它的父级有指定的类时它才会应用如何在一个类伞下隔离整个CSS文件,css,Css,如果我有数百个像下面这样的简单CSS声明,有没有一种方法可以封装所有的CSS,这样只有当它的父级有指定的类时它才会应用 div{ color:#ffffff; } ... a{ color:#000000; } 把它变成这样 .parentClass{ div{ color:#ffffff; } ... a{ color:#000000; } }// end of parent class 而不是必须在每个声明中添加.parentClass 编辑:我不是在寻找继承
div{
color:#ffffff;
}
...
a{
color:#000000;
}
把它变成这样
.parentClass{
div{
color:#ffffff;
}
...
a{
color:#000000;
}
}// end of parent class
而不是必须在每个声明中添加.parentClass
编辑:我不是在寻找继承,我是在寻找一个包装器来隔离其他人的css文件,这样它就不会破坏网站的其他部分,因为他们使用高级元素而不是自定义类来编写css。这不是最优雅的答案,但我过去所做的是在CSS所属页面区域的本地根中添加一个类,比如
mycomponent
。然后将.my component
添加到每个选择器的开头,您希望将其限制在该区域内
我认为可能有更现代/优雅的方式来使用ShadowDOM或使用样式化组件,但我对它们不熟悉。答案是否 只有使用CSS预处理器,才能实现它。 没有预处理器,如果要嵌套样式,必须为每个选择器手动添加特定类。没有捷径可走
也许将来会实施一些措施,但到今天为止,答案是否定的。你知道的更少吗。您可以将更少的文件编译成CSS。我相信您可以使用或伪类来执行类似操作,但您需要确保跨浏览器支持能够满足您的需求,因为这些都是新的。仅使用简单的css语法是无法做到这一点的。听起来您希望为css命名名称空间,因此它只影响页面的一部分。我认为有一种使用shadowdom的方法可以做到这一点,但我从未尝试过。像这样:但我过去所做的只是在CSS应该影响的区域的根元素中添加一个class
myclass
,然后在每个选择器的开头添加.myclass
。这似乎是最一致的解决方案。尽管很不幸。谢谢大家。