【发布时间】:2011-03-13 05:02:43
【问题描述】:
我有大量(超过 300 个)C# ASP.NET 页面 *.aspx 和控件 *.ascx,其中散布着内联 CSS 样式。我的任务是将这些样式提取到 CSS 文件中。
所以我正在寻找一种工具来简化手动提取此内联样式并将其替换为 class="" 语句的任务。
现在我知道这不是做事的理想解决方案,但任何可以减轻任务的工具都会有所帮助。
【问题讨论】:
我有大量(超过 300 个)C# ASP.NET 页面 *.aspx 和控件 *.ascx,其中散布着内联 CSS 样式。我的任务是将这些样式提取到 CSS 文件中。
所以我正在寻找一种工具来简化手动提取此内联样式并将其替换为 class="" 语句的任务。
现在我知道这不是做事的理想解决方案,但任何可以减轻任务的工具都会有所帮助。
【问题讨论】:
我可能会选择使用带有正则表达式的脚本语言。这似乎特别适合python的列表功能-对于您的正则表达式的每个匹配项,您可以检查列表以查看是否有相应的条目,从该结果中提取和分配类,并添加每个未列出的匹配项到列表中以继续构建它。
【讨论】:
没有工具会为您编写好的 CSS 选择器,就像没有工具可以为您编写好的代码一样。是的,您可以从模板生成代码,但仅限于最重复的编码任务。 CSS 与其说是科学,不如说是艺术,因此“自动生成”不会产生好的结果。
编写好的、干净、精简、可维护的 CSS 需要深入了解 HTML 标记、您想要实现的样式和布局,以及识别整个网站的模式(例如字体、颜色、h1)的技能标题、表格数据的表示等,可重复使用。
即使编写自己的脚本也不会产生好的 CSS。您可能希望的最好结果是提取所有这些内联样式,用唯一的 id 或类替换它们,然后将它们全部转储到一个 css 文件中。我实际上并没有看到该练习有很多好处。实际上,由于您将创建所有额外的 id 或类,因此您最终需要维护更多代码。
通过上述练习,您不会在整个网站上获得一致的外观,除非您开始将所有这些唯一 ID 或类合并为更少、更多重复使用的 ID,并且这是一项最好手动完成的任务,而不是自动化反正。由于 css 样式表的浏览器缓存,页面加载时间可能会有所改善,但这就是您获得的全部。
抱歉,如果我偏离了您的问题,但您的网站听起来像是在呼唤您从头开始重新编写 CSS。
查看CSS Zen Garden 获取有关 CSS 可以做什么的灵感,以及漂亮的 CSS 示例,并从中获得启发!
【讨论】:
您可以使用this 工具,它会查找内联样式=... 定义用类定义替换它们并生成样式表。希望这会有所帮助。
【讨论】: