1. 程式人生 > >ASP.NET:GridView的一般換行與強制換行

ASP.NET:GridView的一般換行與強制換行

 //正常換行
   GridView1.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");
   //下面這行是自動換行
   GridView1.Attributes.Add("style", "word-break:break-all;word-wrap:break-word");

在div中,文字佈局經常出現,換行混亂的情況。
問題表現:1.如果是全英文字串,中間不包含任何符號(包括空格),不自動換行.
          2.中英文混寫,則在英文字串的開始處換行(英文長度>div長度),結尾處不換行。
          3.英文整個單詞換行。等等,可能還有一些問題,這裡只列出了常見的幾個;
介紹上面幾個css屬性功能的簡單用法;
word-wrap:normal | break-word; (內容換行)
         normal:預設的屬性值.(允許內容頂開指定的容器邊界).
         break-word:內容將在邊界內換行(不截斷英文單詞換行,截斷英文單詞下面的屬性才具備這個功能。)  
word-break:normal | break-all | keep-all (詞內換行)
           normal:如果是中文則到邊界處的漢字換行,如果是英文整個詞換行,注意:如果出現某個英文字串長度超過邊界,則後面的部分將撐開邊框,如果邊框為固定屬性,則後面部分將無法顯示.
           break-all : 強行換行,將截斷英文單詞
           keep-all : 不允許字斷開。如果是中文將把前後標點符號內的一個漢字短語整個換行,英文單詞也整個換行,注意:如果出現某個英文.字串長度超過邊界,則後面的部分將撐開邊框,如果邊框為固定屬性,則後面部分將無法顯示.
text-overflow:clip | ellipsis  (文字溢位)
             clip :  不顯示省略標記(...),而是簡單的裁切
             ellipsis :  當物件內文字溢位時(超過width部分)顯示省略標記(...)
white-space: normal | pre | nowrap  (內容不換行)
normal 預設。空白會被瀏覽器忽略。
pre 空白會被瀏覽器保留。其行為方式類似 HTML 中的 <pre> 標籤。
nowrap 文字不會換行,文字會在在同一行上繼續,直到遇到 <br> 標籤為止。
(層中放一個表格,如果層的float:none  則表格和層間會有空隙,這種問題的解決辦法是在層的style裡面加上white-space: nowrap)

使用方式: word-break:break-all;
一般情況下:
.body{
       word-wrap:break-word;
       word-break:keep-all;
       overflow:hidden;
}
.css{
      text-overflow:ellipsis;
      white-space:nowrap;
      overflow:hidden;
}

IE與Firefox將它看成是一個長單詞了,因此不會自動換行。
對於IE,可以通過IE專有的CSS屬性word-wrap即可實現自動換行:word-wrap:break-word;
對於Firefox,CSS2標準並沒有定義類似word-wrap的屬性,可以通過overflow屬性將撐出的部分隱藏:overflow:hidden