2009-08-24 86 views
1

如果有人輸入一個非常長的標題/句子,則文本將在網頁上展開。在段落正文中插入字符

有沒有辦法打破文本,所以它繼續到下一行?

使用隱藏的溢出將隱藏文本。

我想我應該使用wbr標籤。

我應該使用insert();方法呢?

string myText = "111111111111111111111111111111111111111111111111111111111111111111111111"; 

myText = myText.Insert(80, "<wbr/>"); 

不知道WBR標籤也是瀏覽器如何跨!

回答

1

嚴格地說,您應該使用零寬度空間(&#8203;)而不是<wbr>。但是,已知Internet Explorer 6及更早版本不支持此功能(它們顯示一個醜陋的框)。所以<wbr>可能是最安全的選擇。除了......標準模式下的Internet Explorer 8已知不支持<wbr>,所以你在這裏已經有了一個奇妙的難題。

您可以在quirksmode.org瞭解更多。

請注意HBoss的評論,除非你使用像Courier這樣的固定寬度的字體,否則很難預測哪裏會突破。你應該聽從他的建議,而不是每80個角色就更頻繁地休息一下。 (並且不要讓我開始組合字符。)

就ASP.NET而言,您的確可以使用Insert方法,但要小心當您需要插入多個字符時:需要做一些記錄(並建議StringBuilder)。

1

您可以使用正則表達式來查找由空白/特殊字符圍繞的單詞,並用具有不同溢出屬性的div/span將其包圍。

如果您確實使用<wbr>,請務必使用<nobr>包圍該單詞。

0

我不確定你可以通過分割內容來解決這個問題,因爲你不能保證這個中斷將在所有瀏覽器中統一。你有字體大小,寬度等的變化。

通常,當我看到內容延伸太var它只是重疊在頁面的其餘部分或設計師設置溢出,以便內容可以滾動。可能有一些CSS技巧可以使用,但我不知道任何。

作爲一個替代方法,而不是簡單地插入一個換行符的每x個,你可能只是插入空格特定字符後,例如,標點符號。這將確保內容在某個點或另一個點包裝。