2014-03-07 119 views
-1

我很喜欢CSS和HTML,所以请耐心等待这个问题。使用CSS命名空间

我正在整合一个web应用程序与我们现有的应用程序。他们定义了一些与我们的应用程序冲突的css规则。

我的问题是:有没有什么好的办法来分离出每个应用程序页面使用的CSS规则? 我试图看看CSS命名空间,似乎很多重做,因为我必须在每个标签元素前加上命名空间。

更新: 我正在尝试将基于Meteor的应用程序整合到另一个基于Meteor的应用程序中,现在我不想要2 CSS混合。

+0

不确定你在问什么。你必须链接你的CSS文件到你的HTML文件。你总是可以将你的css分成多个文件,并且只能链接相应的html和css文件。你在谈论一些类似AngularJS这样的内部路由器的框架吗? –

+1

我正在用铁路由器使用流星框架。 – ajduke

+0

Downvoter !! ,请注意解释 – ajduke

回答

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规则,CSS的

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

美容我来到这里是 '*' 的应用CSS规则甚至包含很多CSS元素的嵌套。

因此,它将CSS自己从另一个应用程序中分离出来

+1

使用*在这里没有必要。 “.another-app-container .someclass”与“.another-app-container * .someclass”基本上完成了相同的事情,并且更清晰并且更少混淆。也许你应该阅读http://css-tricks.com/almanac/selectors/d/descendant/ – jbyrd

0

CSS命名空间是唯一不错的选择。您可以使用崇高文本的多重功能非常轻松地编辑所有规则。

1

将一个类应用于每个页面/模块/应用程序的主体。 通过这种方式,您当前的CSS仍然可以工作,并且您可以通过预先将新的CSS与主体类预占来覆盖。

0

根据应用程序的大小,非常肮脏,快速的解决方案是追加,你需要单独的文件(并适当地应用)的规则

例如

为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/

+0

并置文件不需要使用SASS,SCSS,LESS等。 –