2012-03-07 66 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然而,这是可能的。

您问题中的代码在上述两个库中均有效。