Visual Studio 2010 中的 HTML 格式

Posted

技术标签:

【中文标题】Visual Studio 2010 中的 HTML 格式【英文标题】:HTML formatting in Visual Studio 2010 【发布时间】:2011-06-06 02:13:18 【问题描述】:

每当我在 Visual Studio 中使用 Ctrl-K、Ctrl-D 重新格式化 html 源代码时,它都会像这样格式化我的源代码:

<p>
    text</p>
<p>
    more text</p>

我怎样才能让它改用以下格式?

<p>
    text
</p>
<p>
    more text
</p>

我知道Options-> Text Editor -> Html -> Formatting 有设置,但是我在那里找不到合适的。

谢谢,

阿德里安

编辑:我已经检查了特定于标签的设置,并且 p 标签的分页符设置为“打开前、关闭内和关闭后”。此外,小预览显示了我想要的格式。但是 Visual Studio 仍然做错了。这与在我的系统上安装 Resharper 有什么关系吗?

【问题讨论】:

【参考方案1】:

问题与 ReSharper 无关。这是 Visual Studio Source Formatter 设计的一项功能,它会尝试不因您指定的格式选项而更改元素的语义。

因此,您指定希望 p 标记在内容中具有中断,但是 ap 标记之后的中断会改变标记中内容的语义,因此格式化程序最终将结束 p 标记放在内容。要将结束标记放在单独的行上,您需要在内容结尾和结束标记之前显式添加一个空格。

因此:

<p>content</p>

将产生:

<p>
   content</p>

While(注意在内容和结束 p 标签之间明确包含一个空格):

<p>content </p>

将产生:

<p>
   content
</p>

Scott Guthrie 在倒数第三段的blog post 中对此进行了讨论。从附加链接部分正上方的段落开始计数。

【讨论】:

为什么在p 元素后添加空格会改变语义?浏览器会以不同的方式处理这些情况吗? 有解决这个问题的插件吗?我认为这个空间问题只会影响 IE6 布局,我会让它正确格式化代码。【参考方案2】:

查看How Change Auto Formatting HTML In Visual Studio 2008 2010

【讨论】:

【参考方案3】:

单击工具、选项、文本编辑器、HTML、格式、标签特定选项。 为p 添加一个新的客户端标签(如果它还没有)并选择Separate Closing tagBefore, within, and after closing

【讨论】:

以上是关于Visual Studio 2010 中的 HTML 格式的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 Professional 中的 /analyze 标志

visual studio 2010中调用另外一个项目中的方法

似乎无法忽略 Visual Studio 2010 中的库

Visual Studio 2010 中的传输文件功能

Visual Studio 2010 中的代码自动清理

Visual Studio 2010中的多个输出窗口