如何处理空的CSS规则?

4

经过代码审查,我删除了不必要的属性,因此导致规则为空。

现在我有一个类似这样的问题:

table.foo
{
}

table.foo td.bar
{
    padding: 5px;
}

现在,关于这个空表规则,最好的行动方案是什么?删除它还是保留它?有没有要求声明父元素才能定义其子元素?实际上,没有声明也可以正常使用,但可能存在一些验证考虑因素。欢迎提出任何意见。

7个回答

10

不需要空规则。

每个规则都是独立的(也就是说,规则的选择器提供了上下文),所以您不需要为table.foo添加一个空规则,以便在table.foo td.bar中有一个规则。


同意。table.foo的存在在td.bar规则中明确声明 - 在空规则中不存在任何有用的历史或意图,这些都已经存在于“活动”的规则中。 - TSomKes
1
有时我会将其留空,再加上我的缩进选择器的使用,以帮助组织。 - seanmonstar
明白了。缺点包括需要下载更大的CSS文件,臃肿的规则列表等,但我可以想象组织可能会胜过这些问题。(为了抵消这些负面影响,我喜欢Sam DeFabbia-Kane的优化步骤,假设所涉及的项目达到了有意义的“结束”状态。) - TSomKes

5

熔岩流是一种不好的编程反模式,它意味着人们倾向于保留他们不确定是否需要的代码,只是因为他们不想破坏代码。 但是,如果您的代码没有必要,那么请摒弃它!


1
我第一次听到这个术语,很喜欢它。"现有的代码被视为历史上的好奇心"。 - Adria

1

我猜你对CSS还比较新,但显然你对编程并不陌生,所以我想指出一些有用的框架,可以提供样例、一致的风格和快速解决问题。

YUI的CSS资源 http://developer.yahoo.com/yui/grids/

以及Blueprint CSS http://www.blueprintcss.org/

此外,YUI theater还有一些很好的入门视频。

希望这能帮到你。


1

从功能角度来看,这是完全不必要的。而且你安排事物的方式也完全没有必要。

备选的CSS组织方案(例如按层次缩进)可以使其变得有价值。如果我有一个带有子元素的元素,我通常会留下一个空选择器,至少在完成项目并进行优化之前,因为它有助于保持组织,并且有很大的可能性我将来会对该元素应用样式。


0

以防有人遇到和我一样的问题,这里是一个案例:当一个空规则确保接下来的规则不被忽略时,就会出现这种意外。在我的规则之前有一个额外的闭合括号,而空规则帮助重新同步解析器。

当然,正确的修复方法是修复语法并删除空规则。


0
不,你真的不需要离开这个。这只会让你的项目CSS变得更大。除非你喜欢整理,否则你应该让这些东西自然而然地发生。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接