2014-03-07 116 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等。 –