2009-05-21 33 views
13

所以,如果我有一個HTML的標題這樣爲什麼Visual Studio的格式文檔工具將標題標籤放在兩行?

<h2>A Heading</h2> 

,我跑Edit -> Format Document它結束了看起來像這樣

<h2> 
    A Heading</h2> 

這是爲什麼?它不會對其他塊元素執行此操作,但它可以對其他內聯元素執行此操作(例如<label>)。

更新:爲了澄清,我的意思是這是爲什麼默認的,不是在哪裏設置來改變這種

回答

16

它確實是因爲這些都是它的默認設置。在較老的瀏覽器中,有時在子元素之後的新行上有一個塊或內聯元素的結束標記(實際上留下空白,如非中斷空間或空文本節點)會影響頁面的呈現方式。我之前遇到過麻煩。例如,下面可以渲染正確的問題,如果你的錨有邊框或留白:

<a> 
    <img src="..." /> 
</a> 

有時會在鏈路的底部額外的間距。它更改爲以下移除額外間距:

<a><img src="..." /></a> 

基本上,高飛格式解決了在劣質的CSS支持像IE6瀏覽器的一些渲染的問題。如果你有IE6,請看我創建的this JSFiddle來說明問題。在圖像底部存在額外的間距,錨標籤存在於它們自己的線上。

Scott Guthrie's blog

如果格式化選擇標記,看到了密切的標籤還沒有被移動到一個單獨的線 - 那是因爲有前面的標記結束之間沒有空格和終止標籤,因此VS正在小心不要改變它以避免改變渲染語義。

因此,儘管在Visual Studio中設計器的格式設置或輸出可能會很醜,但它比正確格式化標記(如XHTML)更適用於更多瀏覽器。

要更改在Visual Studio中的格式默認設置,請訪問:

Tools > Options > Text Editor > HTML > Format > Tag Specific Options... 

在「默認設置」,改變「換行符」選項「前後」爲客戶端和兩個服務器「標籤支持內容」選項。

+1

是的,我從來沒有理解默認的HTML格式設置。他們中的大多數人相當可惡,海事組織。 – Chris 2009-05-22 00:05:01

相關問題