经过一些代码审查后,我删除了导致空规则的不必要属性。
所以我知道这样的事情:
table.foo
{
}
table.foo td.bar
{
padding: 5px;
}
现在,关于这个空表规则的最佳操作方法是什么?删除它或离开它?是否要求声明父元素能够在其上定义子元素?它实际上没有它就好了,但也许有一些验证考虑因素?任何意见都表示赞赏。
答案 0 :(得分:10)
不,您不需要空规则。
每个规则都独立存在(即规则的选择器提供上下文),因此table.foo
不需要空规则才能拥有table.foo td.bar
规则。
答案 1 :(得分:5)
熔岩流很糟糕! Lava Flow是一种编程反模式,这实际上意味着人们倾向于留下他们不确定需要的代码,因为他们不想破坏事物。但是,你的代码没有它,所以摆脱它!
答案 2 :(得分:1)
从功能的角度来看,这是100%不必要的。从风格的角度来看,你安排事物的方式也是完全没必要的。
备用CSS组织方案(例如,按层次结构缩进)可以使它值得。如果我有一个带孩子的元素,我会经常留下一个空的选择器,至少在我完成项目并且我正在优化之前,因为它有助于保持组织有序并且我很有可能至少在以后将样式应用于该元素。
答案 3 :(得分:0)
我认为你对CSS有些新意,但你显然不是编程的新手,所以我想我会指出一些有用的样本框架,一致的风格,以及快速跳过陷阱。
YUI的CSS资源 http://developer.yahoo.com/yui/grids/
和蓝图CSS http://www.blueprintcss.org/
此外,YUI剧院还有一些很好的介绍视频。
希望有所帮助。
答案 4 :(得分:0)
不,你真的不需要离开这个。它只会让你的项目的CSS更大。除非你因组织而生病,否则你应该放弃这样的事情。
答案 5 :(得分:0)
查看Dust-Me Selectors Firefox extension - 它会在页面中找到所有未使用的CSS选择器,甚至是整个站点。
答案 6 :(得分:0)
以防万一有人遇到与我遇到同样的错误经历时遇到的问题,这是一个空规则实际上会确保不忽略以下规则的情况。在空规则之前的规则中,我还有一个额外的括号,而空规则有助于重新同步解析器。
当然,正确的解决方法是修复语法。并删除空规则。