我有一大堆(超过300)C#ASP.NET页面* .aspx和控件* .ascx,它们内嵌CSS样式。我的任务是将这些样式提取到CSS文件中。从HTML中提取内联CSS并净化页面
所以我正在寻找一个工具来简化手动提取这种内联样式的任务,并用class =“”声明替换它们。
现在我知道这不是理想的解决方案,但任何可以缓解任务的工具都会有帮助。
我有一大堆(超过300)C#ASP.NET页面* .aspx和控件* .ascx,它们内嵌CSS样式。我的任务是将这些样式提取到CSS文件中。从HTML中提取内联CSS并净化页面
所以我正在寻找一个工具来简化手动提取这种内联样式的任务,并用class =“”声明替换它们。
现在我知道这不是理想的解决方案,但任何可以缓解任务的工具都会有帮助。
我可能会选择使用正则表达式的脚本语言。这看起来很适合python的列表功能 - 对于每个匹配到正则表达式,您可以检查列表以查看是否有相应的条目,从该结果中提取并分配类,并添加每个未列出的匹配到名单继续建设。
没有工具会为你写好CSS选择器,就像没有工具可以为你写好代码一样。是的,您可以从模板生成代码,但仅适用于最重复的编码任务。 CSS比科学更艺术,因此“自动生成”不会产生好的结果。
编写好的,干净的,精益的,可维护的CSS需要深入了解HTML标记,您试图实现的样式&布局以及识别整个站点模式(如字体,颜色, h1标题,表格数据的表示等等,这些都是重复使用的。
即使编写自己的脚本也不会产生良好的CSS。你所希望的最好的方式是提取所有这些内联样式,用一个唯一的id或class替换它们,并将它们全部转储到一个css文件中。我在这个练习中实际上并没有看到很多好处。实际上,由于您要创建的所有额外ID或类都会有更多的代码需要维护。
除非您开始将所有这些唯一ID或类整合到更少,更多重用的ID中,否则在上述练习中,整个站点的外观不会保持一致,而且这是最好的手工完成的任务,而不是无论如何自动化。由于css样式表的浏览器缓存,页面加载时间可能会有所提高,但是这取决于您获得的所有内容。
对不起,如果我偏离了你的问题,但你的网站听起来像是在呼唤你从头重新编写你的CSS。
查看CSS Zen Garden获取关于CSS可以做什么的灵感,以及美丽CSS的例子,并且被启发!
是的......这是真的,但我更期待现有的工具来做到这一点。我不喜欢写自己的作品。 – Drejc 2010-07-09 12:06:40
不要使用正则表达式来解析HTML,请使用正确的HTML解析器:http://stackoverflow.com/a/1732454/3408 – rjmunro 2012-02-06 15:58:24
他没有在寻找解析HTML的方法。他正在试图用另一组特定的模式替换一组特定的文本。正则表达式可以做得很好。这些模式发生在HTML中与正则表达式是否能够适应他的需求无关。 – 2012-02-07 16:27:08