2012-03-07 28 views
1

我認爲這是可能的,但每個人都告訴我它不是。CSS - 上下文使用樣式?

我想上下文的造型像我的CSS文件:

div#foo { 
h2 { 
    color: #F42 
} 
p.bar { 
    font-size: 12px 
} 
} 

因此,只有在與ID FOO股利H2和p.bar將樣式。或者只有LESS和其他類似的庫纔可以這樣做?

感謝&親切的問候, Jurik

+3

你不能像這樣嵌套CSS聲明。他們無效。是的,你需要很少這樣做。 – 2012-03-07 15:09:03

回答

1

這是不可能的純CSS,這就是爲什麼你應該使用SCSSLESS(我建議使用SASS/SCSS),這是CSS的超集

LESS/SASS,SCSS允許你編寫動態CSS與緩解,看看this比較

退房COMPASS這就是爲什麼我建議你SASS/SCSS

+1

甚至還有一個名爲dotless的.NET端口,我只是將它插入到一個項目中,並在2分鐘內完成工作!沒有客戶端代碼需要 – 2012-03-07 15:44:48

+0

不錯! SASS/COMPASS自帶默認的服務器端自動編譯(你只需指定要觀察的文件夾和部署位置); DI不知道......我真的不喜歡JS編譯少用(最重要的是缺少指南針):\ – VAShhh 2012-03-07 16:46:29

+0

非常感謝 - 我聽說它仍然在CSS3中是不可能的...... blame wc3:S – Jurik 2012-03-08 09:35:24

4

這是不可能與標準的CSS,這2類將需要進行設置,如:

div#foo h2 {} 
div#foo p.bar {} 
0

這是可能的,但如下:

div#foo h2 { 
    /* styles go here */ 
} 

div#foo p.bar { 
    /* styles go here */ 
} 
0

你上面的只是一個稍微改變的版本:

div#foo h2 { color: #F42; } 
div#foo p.bar { font-size: 12px } 

我真的沒有看到任何收益。

+0

當您獲得超過2000行的CSS文件時,您會看到使用contextes的好處 - 對於工程師來說更好的概述和更少的代碼。 – Jurik 2012-03-08 09:38:17

+0

@Jurik:我有很多散裝的css文件,簡單的組織讓所有東西保持原位,很容易找到。要獲得的唯一真正收益是重複選擇器的縮小,但是在標準網頁上可以在PC瀏覽器上查看,這是最小的收益。如果目標受衆是移動的(可以看到這樣的收益),我會說錯誤#1的設計需要一個2k行的css文件。 – 2012-03-08 11:49:36

0

Less讓我們這樣做幾乎你所描述的,以及其他一些很酷的喜歡使用的東西的主要原因變量css等

當然,一旦你讓它編譯,它會把它變成有效的CSS,在以前的答案中已經提出。還值得一看,恕我直言。

+0

是的,還有問題......好吧 - 至少爲工程師編寫腳本更容易 - 但仍然是大容量CSS輸出它被編譯。 – Jurik 2012-03-08 09:36:22

0

肯定的,但分開......

div#foo h2 { 
    color: #F42 
} 
div#foo p.bar { 
    font-size: 12px 
} 

但我想也改了一下:

#foo h2 { 
    color: #F42 
} 
#foo p.bar { 
    font-size: 12px 
} 

您使用的ID,所以你不需要之前什麼都不說,因爲ID的是獨一無二的

+0

它們對於每個HTML頁面都是唯一的,但是這個CSS可以用於多個頁面,其中'foo'可以是另一個元素的ID。 – Curt 2012-03-07 15:20:13

+0

是的,但我的意思是它不能有,例如,一個'span#foo'和'div#foo' – MCSI 2012-03-07 15:57:41

+0

謝謝,但主要焦點是在css中使用上下文的可能性 - 現在我知道這是不可能的 :) – Jurik 2012-03-08 09:34:47

0

它不可能使用默認的CSS技術。

但是,通過使用sassless然而,這是可能的。

您問題中的代碼在上述兩個庫中均有效。