使用CSS命名空间

时间:2014-03-07 07:49:16

标签: html css css3 meteor iron-router

我是CSS和HTML的菜鸟,所以请耐心等待这个问题。

我正在将Web应用程序与现有应用程序集成。他们定义了一些与我们的应用程序冲突的css规则。

我的问题是:有没有什么好方法可以分离出每个应用程序页面使用的CSS规则? 我试着看看CSS名称空间,似乎需要很多返工,因为我必须在每个标签元素前加上命名空间。

更新: 我正在尝试将基于流星的应用程序集成到另一个基于Meteor的应用程序中,现在我不想要2 css两个混合。

4 个答案:

答案 0 :(得分:1)

将一个类应用于每页/模块/应用程序的主体。 通过这种方式,您当前的CSS仍然有效,您可以通过在主体类前添加新CSS来覆盖。

答案 1 :(得分:0)

CSS名称空间是唯一的好选择。您可以使用sublime文本的multiediting功能非常轻松地编辑所有规则。

答案 2 :(得分:0)

根据应用程序的大小,一个非常肮脏和快速的解决方案是附加您需要分离文件的规则(并适当地应用)

e.g。

  

对于main.html,你有main.css
  about.html,有about.css

然而,这是非常糟糕的做法,因为您将所有请求分开的信息基本相同......

您可以在您的开发环境中使用CSS预处理语言,例如SASS,SCSS或LESS,您可以将许多特定页面抽象为模块化文件,如main.sass,about,sass等...这将编译成一个main.css文件。

另一件需要考虑的事情是CSS是类,id和伪选择器如何影响可以应用的规则的特异性

即。

!important > #id > .class > html_element

这是一篇关于CSS特性的优秀介绍文章〜 http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

答案 3 :(得分:0)

我最终找到了适合我的解决方案。

对于我正在整合的另一个应用程序,我把它的整个身体变成了一个容器并给它上课。

在另一个应用的布局中,

<!-- Another application body layout-->
<body>
<div class="another-app-container">
  <!-- Here goes whole layout of page -->
   <p  class='someClass' > ....
     <div class='myClass'> </div>

   </p>
</div>

</body

在该应用的CSS中,我应用了以下CSS规则,

    .another-app-container * .someclass{
    // CSS rule goes here
    }
   .another-app-container * .myClass {
    // CSS rule goes here
    }

我到这里的CSS之美是,&#39; *&#39;它应用了CSS规则,即使它有很多嵌套元素CSS。

因此,它将我自己的CSS与另一个应用程序隔离开来