第一種方法是直接引用樣式:
<style type="text/css">
.label{word-wrap:break-word;word-break:keep-all;overflow:hidden;}
</style>
<asp:Label ID="Label3" runat="server" Width="350px" Text='<%# Bind("y_question") %>' CssClass="label"></asp:Label>
第二種方法:查看頁面源碼發現,解析后的label標簽為<span>
所以在頁面添加樣式:
<style type="text/css">
span{word-break:break-all;}
</style>
<asp:Label ID="Label3" runat="server" Width="350px" Text='<%# Bind("y_question") %>' ></asp:Label>
Gridview單元格強制換行
GVData.Attributes.Add("style", "word-break:keep-all;word-wrap:false");
=========================
//正常換行
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
