【发布时间】:2012-06-13 05:37:42
【问题描述】:
我有几个带有重叠 CSS 选择器的 CSS 文件,我想以编程方式合并它们(不仅仅是将一个文件附加到另一个文件的末尾)。有没有什么工具可以在线做到这一点?或者是 Firefox 扩展?
【问题讨论】:
标签: css
我有几个带有重叠 CSS 选择器的 CSS 文件,我想以编程方式合并它们(不仅仅是将一个文件附加到另一个文件的末尾)。有没有什么工具可以在线做到这一点?或者是 Firefox 扩展?
【问题讨论】:
标签: css
我找到了Factor CSS - 包含完整的源代码,但我认为它比我需要的要多。我真的只是想组合具有相同选择器的 CSS 块。我将查看源代码,看看它是否可以转换为可用作 TextMate 包的东西。也就是说,除非其他人设法在我之前达到它。
编辑:更好 - 这里是a list of web-based tools for checking/formatting/optimizing css。
【讨论】:
不,我希望有,但编程工作似乎太多了,因为有多种方法可以引用单个元素。您能做的最好的事情就是使用像 FireBug 这样的运行时来查找重复项。
【讨论】:
几年前我编写了一个 Perl 实用程序来执行此操作。
除了将一个或多个样式表合并到单个连贯的排序输出中(使用 cmets 显示每个属性出现在哪个文件中,并在属性值冲突时发出警告),您还可以有选择地 根据选择器、属性或两者搜索或合并。
这些都是智能处理的,例如,如果您搜索属性font,您还会得到font-size、font-weight 等(仍然显示在 CSS 块中,并带有从中获取它们的相关选择器)。同样,选择器搜索尝试做正确的(即通常最有用的)事情。如果您搜索元素a,它将匹配选择器为a、a:hover、a.extlink、a#mylink、.foo a、#bar a、p a、@ 的任何块987654334@、a + p、a img...(最后两个不直接影响 a 本身的样式,而是影响相邻或后代元素的样式,这通常很有用在这样的搜索中了解),没有匹配#a,.a等。当然这个行为是可选的,你也可以搜索一个精确的选择器。或正则表达式。
除了 perl 本身,唯一的依赖是 CSS::Tiny
它是免费软件,你可以在这里获得它:cssmerge
【讨论】: