如何将CSS缩写转换为完整写法?

9

有没有自动将简写CSS转换为长格式的工具?我需要这个工具,因为我想使用SmartSprites,而这个工具与简写不兼容。

最好还有一个反向工具,这样在精灵计算之后,我可以尽可能地压缩CSS...

任何其他自动精灵化的解决方案也欢迎,基本上我正在寻找一些可以集成到构建过程中的命令行工具,以便开发人员仍然可以在原始CSS代码上进行开发。


你的意思是缩写像 margin: 0px 0px 0px 0px; 会变成 margin-left:0px,等等。还是指CSS的压缩版本,其中元素声明都在一行上?例如 #element {margin:0px} - betamax
第一个是...即margin: 0px 0px 0px 0px;将变成margin-left:0px,等等... 第二个不是很重要,使用正则表达式很容易实现... - sajal
1
这将是一个不错的 code golf 问题。 - user123444555621
如果只是像边距、边框和填充这样的东西,我会在Python中进行一些字符串处理。解析值并按您喜欢的方式组合起来。验证和视觉检查它,然后手动完成其余的微调。另一个选项是使用JavaScript查找每个元素的CSS样式。不确定是否可以做到这一点。Firebug可能会在计算值选项卡方面派上用场。 - Benbob
这是我明天的计划。由于我只对背景感兴趣:缩写,我打算用Python编写一些代码来接收原始CSS并解析“background:”元素。有哪些Python模块可以让我的生活更轻松?或者我应该坚持使用好老式的正则表达式?JavaScript和Firebug的方法行不通,因为CSS中有很多未使用的元素需要保留。 - sajal
我认为正则表达式应该没问题。获取与margin: x x x x;匹配的行,并按空格拆分它。删除该行并插入"margin-top:" + values[0]等。有一个用于Python的CSS解析器:http://cssutils.googlecode.com/svn/trunk/docs/html/index.html根据您的CSS长度,使用字符串函数可能会更容易。 - Benbob
2个回答

2
你可以在Opera上使用Dragonfly。Dragonfly类似于Firefox和Chrome上的Firebug,但是由Opera开发。在Dragonfly中有一个函数可以让你改变缩写词和反之亦然。请查看opera.com/dragonfly/documentation/

0

对于反向操作,您可以使用类似csstidy的CSS优化器。但我怀疑它是否会将简写转换为非简写。

为什么不禁止开发人员使用简写,并在构建过程中使用csstidy呢?

如果您不喜欢这个想法,您可以编写一个小脚本来进行简写转换,这比另一种方式要容易得多。它基本上归结为字符串替换。


从我尝试过的来看... csstidy不能将简写转换为长版本。CSS来自客户现有的网站,并将在未来完全重写(不使用简写)... 现在我必须使用现有的CSS... 它充满了简写CSS。太多了,无法手动延长。由于我只对延长背景属性感兴趣,我将尝试用Python编写一些东西。 - sajal
是的,我也没想到csstidy会这样做。祝你的脚本好运! - fhd

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