2010-07-08 38 views
3

我有一大堆(超过300)C#ASP.NET页面* .aspx和控件* .ascx,它们内嵌CSS样式。我的任务是将这些样式提取到CSS文件中。从HTML中提取内联CSS并净化页面

所以我正在寻找一个工具来简化手动提取这种内联样式的任务,并用class =“”声明替换它们。

现在我知道这不是理想的解决方案,但任何可以缓解任务的工具都会有帮助。

回答

0

我可能会选择使用正则表达式的脚本语言。这看起来很适合python的列表功能 - 对于每个匹配到正则表达式,您可以检查列表以查看是否有相应的条目,从该结果中提取并分配类,并添加每个未列出的匹配到名单继续建设。

+0

是的......这是真的,但我更期待现有的工具来做到这一点。我不喜欢写自己的作品。 – Drejc 2010-07-09 12:06:40

+1

不要使用正则表达式来解析HTML,请使用正确的HTML解析器:http://stackoverflow.com/a/1732454/3408 – rjmunro 2012-02-06 15:58:24

+0

他没有在寻找解析HTML的方法。他正在试图用另一组特定的模式替换一组特定的文本。正则表达式可以做得很好。这些模式发生在HTML中与正则表达式是否能够适应他的需求无关。 – 2012-02-07 16:27:08

1

没有工具会为你写好CSS选择器,就像没有工具可以为你写好代码一样。是的,您可以从模板生成代码,但仅适用于最重复的编码任务。 CSS比科学更艺术,因此“自动生成”不会产生好的结果。

编写好的,干净的,精益的,可维护的CSS需要深入了解HTML标记,您试图实现的样式&布局以及识别整个站点模式(如字体,颜色, h1标题,表格数据的表示等等,这些都是重复使用的。

即使编写自己的脚本也不会产生良好的CSS。你所希望的最好的方式是提取所有这些内联样式,用一个唯一的id或class替换它们,并将它们全部转储到一个css文件中。我在这个练习中实际上并没有看到很多好处。实际上,由于您要创建的所有额外ID或类都会有更多的代码需要维护。

除非您开始将所有这些唯一ID或类整合到更少,更多重用的ID中,否则在上述练习中,整个站点的外观不会保持一致,而且这是最好的手工完成的任务,而不是无论如何自动化。由于css样式表的浏览器缓存,页面加载时间可能会有所提高,但是这取决于您获得的所有内容。

对不起,如果我偏离了你的问题,但你的网站听起来像是在呼唤你从头重新编写你的CSS。

查看CSS Zen Garden获取关于CSS可以做什么的灵感,以及美丽CSS的例子,并且被启发!

+1

你知道这些工作是我进来的,而所有的伤害都已经完成了。因此,我创建了一个简单的估计,我将花费多少时间来“修复”当前的情况,至少在20天左右才会出现。这是我希望得不到的答案。虽然以下是真实的,但它不会解决我的问题。它有助于零。 – Drejc 2010-07-19 06:43:55

+0

是的,它会花费一桶时间,比一开始就要花费的时间要长。你所能做的就是向你的团队/老板/客户解释为什么用工具将CSS转储到文件中是毫无意义的,并解释了做正确的好处。让他们决定是否继续。 – saille 2010-07-20 00:59:03

0

您可以使用this工具,它会查找内联样式= ...定义将其替换为类定义并生成样式表。希望这是有帮助的。

+0

链接已死,我必须为此投票回应。 – holaSenor 2013-03-07 17:50:16