Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在一个类伞下隔离整个CSS文件_Css - Fatal编程技术网

如何在一个类伞下隔离整个CSS文件

如何在一个类伞下隔离整个CSS文件,css,Css,如果我有数百个像下面这样的简单CSS声明,有没有一种方法可以封装所有的CSS,这样只有当它的父级有指定的类时它才会应用 div{ color:#ffffff; } ... a{ color:#000000; } 把它变成这样 .parentClass{ div{ color:#ffffff; } ... a{ color:#000000; } }// end of parent class 而不是必须在每个声明中添加.parentClass 编辑:我不是在寻找继承

如果我有数百个像下面这样的简单CSS声明,有没有一种方法可以封装所有的CSS,这样只有当它的父级有指定的类时它才会应用

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
。这似乎是最一致的解决方案。尽管很不幸。谢谢大家。