代码之家  ›  专栏  ›  技术社区  ›  Android Eve

CSS“Normalizer”工具?[关闭]

  •  16
  • Android Eve  · 技术社区  · 15 年前

    我需要维护和改进一个现有的网站,我正沉浸在我在其CSS样式表中发现的冗余中。考虑到现有的冗余和元素的非方法性排序,很难跟踪和预测微小的更改将如何在系统中传播,或者在何处应用更改以实现特定效果,而不需要花费大量时间重新学习CSS文件并进行试验。

    我一直在为火狐使用最新的Firebug和“Web开发人员”插件,但显然它们对我来说还不够。我需要一个工具来告诉我冗余的“覆盖”在哪里,也许建议一个更好的级联方案。

    换句话说,帮助我生成 最短的CSS文件 它提供了与我现在所拥有的完全相同的视觉功能。

    为了进一步澄清,我不想找一个用“000”、“0.5em”替换“000000”、“white”替换“fff”等的工具(这解决了“字符数”冗余,但没有解决“级联逻辑”冗余)。我正在寻找一个工具,可以告诉我,例如,子元素的“font-size:10px”属性是多余的,因为它已经从其父元素继承了。

    更高级的特性是:类或ID的“color:000000”属性是多余的,因为它不用于网站上的任何HTML/PHP文件。

    是否有一个工具可以自动执行这种“规范化”?

    7 回复  |  直到 11 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    要根据标记查找重复/未使用/不必要的CSS,可以尝试 WARI Dust-Me Selectors (AS) @Aaron D 或) CSS Crunch . 最后两个是浏览器扩展(分别针对火狐和IE),它只会查看一个页面,而wari则打算查看整个站点。然而,我没有太多运气让瓦里去工作。

        2
  •  2
  •   Aaron D    15 年前

    我想你在寻找CSS的圣杯。我认为它不存在。问题在于,您永远不知道浏览器将在样式表中呈现和需要什么。我已经用过 Dust-me Selectors 火狐的插件可以帮助定位未使用的样式,但要自动定位,这是一项艰巨的任务。

    也就是说,我认为使用像sass这样的框架(如前所述)或 LESS 是对你问题的全面回答。这些框架消除了很多冗余,使您的CSS紧凑。由于与CSS的相似性,我不喜欢Sass。

        3
  •  2
  •   Bobby Jack    15 年前

    Aaron对复杂性有很好的评价。例如,这样的工具不仅需要访问CSS文件,还需要访问HTML(否则它将无法确定继承之类的内容)。那么,您是在寻找一种可以蜘蛛式搜索整个站点并考虑到每个页面的东西,还是可以从文件中提供标记?

    这种工具很可能会产生比一个优秀的网页设计师所能产生的更不易维护的CSS(我正在考虑缩短选择器的长度,然后可能只需要在以后“重新延长”)。如果这只是暂时的行动,那没问题,但我想知道为什么你首先需要这样做。

        4
  •  2
  •   gtrak    15 年前

    看看Sass,它是一个有自己语言和语法的CSS编译器,但是它有CSS导入功能。 http://sass-lang.com/

    我想知道,仅仅是一个进出口周期是否能为您带来好处?

    编辑:看起来导入/导出周期还不够,但是SASS为您提供了一些工具,使重构时的生活更轻松。

        5
  •  1
  •   Aaron Digulla    15 年前

    我不知道这样一个工具,也不了解CSS的复杂性,我甚至不确定是否有可能解决这个问题(有些CSS样式只是为了让旧浏览器符合标准)。那么,一个工具有多大的价值来创建一个新的W3C兼容的CSS,它不会因为bug而在大多数浏览器上呈现?

    也就是说,你应该看看 Envjs 它允许您在模拟浏览器中读取网页,然后检查结果。不完美,但可能会让你开始。

        6
  •  0
  •   NullUserException Mark Roddy    15 年前

    你可以试试 YUI Compressor . 适用于CSS和JavaScript文件。

        7
  •  0
  •   bdukes Jon Skeet    15 年前

    你可以试一试 CSS Tidy ( online version )它将减少冗余,可以选择转换为速记样式,并可用于创建缩小的输出和漂亮/格式化的输出。