有很多规则,提示和学校的想法,有助于实现更清洁的CSS。 (例如here)然而,所有这些都需要持续的警觉性,活动和维护者的很多纪律,与现实世界的成功混合。为Nicole Sullivan so nicely puts it:
In fact,in most cases,the things we considered best practices were leading to the bad outcomes we sought to avoid. I realized (unpopular though it might be),that we couldn’t make it work out well by trying harder. Each time we start a new project,we think “this time,I’m going to keep the code clean. This time the project will be a shining example of what can be done with CSS.” And without fail,over time,as more content and features are added to the site,the code becomes a spaghetti tangle of duplication and unpredictability.
有没有努力创建某种语言,有严格的结构规则和无情的编译器,强制执行严格的规则,防止样式表成为意大利面条?编译的最终结果将是CSS。
我不知道这样的语言会是什么样子,考虑到大量的可能性和组合,这是一个可解决的问题。
这个领域有没有研究?什么都试试?
一个非常有趣的相关工具是CSS Lint,但我要求的是甚至比这更远。
Edit: LESS and SASS absolutely go into the right direction,but they are not what I am looking for. They introduce some very nice features and are a godsend for the CSS developer,but what I’m,asking about goes even further and more into defined,enforced structures.
解决方法
但是,CSS没有流控制,函数,变量等等,这意味着在CSS周围有更高级的语言没有意义。在它的根,它只是与级联逻辑的名称 – 值对。
如果你想统治你的CSS代码,你还需要统治你的DOM。如果要定义ID为left和right的列,那么您在语义上限制设计者将它们移动到其他位置。另一方面,如果你聪明的事情,你可以做更多。
最后,级联部分是大多数新设计师有最大错误倾向的。如果你密切关注DOM和级联逻辑,使用一些很好的重置或基于网格的框架,并合并如LESS(Ruby)或LessPHP的工具,你会得到更加令人愉快的工作。我喜欢LESS,因为它赋予你准功能,变量和嵌套属性,真正帮助清理你的CSS。