【问题标题】:Cleaning up deprecated HTML in a large project清理大型项目中已弃用的 HTML
【发布时间】:2014-04-24 19:03:38
【问题描述】:

我正在 Visual Studio 2012 中处理一个项目,该项目中充斥着弃用的 HTML 标记。这会导致大量 Visual Studio 警告。其中大量是align 属性标签广泛使用的结果。

<td align="Left">
....

所以我确实看到了以下数百条警告:

Validation (XHTML5): Attribute 'align' is not a valid attribute of element 'td'.    

执行站点范围更新以将其转换为内联 CSS 样式的最佳方法是什么?我已经尝试过查找替换正则表达式,但某些元素已经具有样式定义,因此正则表达式方法会导致样式标签重复。

是否有 Visual Studio 扩展可以为我自动执行此清理操作?我查看了ReSharperCodeMaid,但不确定它们是否能胜任?

编辑:

我还希望将以下已弃用的 html 属性重新定位到样式标签。

<td height="50">
<td width="50>
<table cellpadding="2">

【问题讨论】:

    标签: html visual-studio deprecated visual-studio-extensions htmlcleaner


    【解决方案1】:

    没有简单的方法,原因有几个。 align 属性在不同的标签中有不同的含义,需要不同的 CSS 代码。对于 td 单独来说,这很简单,但是您需要将 text-align: ...style 属性中的现有内容(如果存在)结合起来。实际上,您需要一个 HTML 解析器一个 CSS 解析器。

    cellpadding 属性从未有效且在td 中不起作用,仅在table 中起作用。用style 属性替换它意味着您需要在表中的每个thtd 中放置这样一个属性。

    其他表现属性可能更棘手。 HTML5 在Rendering 上有一个复杂的部分,描述(除其他外)CSS 术语中表示性标记的“预期”效果(这些描述与现实不太相符,但大多数情况下确实如此)。

    在所有情况下,结果仍然不一样。 HTML 中的表现属性在格式化方面有着特殊的作用,它不能用 CSS 来描述(在 CSS 规范中有描述,但你不能用 CSS 代码来表达)。

    (这些功能在 HTML5 中不是“贬值”,而是“过时”。这意味着浏览器应该继续支持它们。没有充分的理由在旧页面上“清理”它们 - 没有可能的收益,而且“清理”会导致很多问题,尤其是如果在其中犯了错误,而人类会犯错误。)

    【讨论】:

    • 关于cellpadding 的好点,在我的示例中,我错误地将其与TD 相提并论,尽管在项目中它们都在表格元素中。完全看到需要应用的级联样式的困境。我想我会在整个站点范围内清除cellpadding 属性,并保留heightwidthalign 属性不变。感谢您的详细解答!
    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多