在進行DivCSS佈局時,需要對文字進行控制,今天系統的向大家介紹一下。 CSS中控制換行的四種屬性。
一、white-space
可以實現HTML中PRE標籤的效果,以及單元格的noWrap效果。
文法:
white-space : normal pre nowrap
取值:
normal: 預設值。預設處理方式。文字自動處理換行。假如抵達容器邊界內容會轉到下一行
pre: 換行和其他空白字元都會受到保護。這個值需要IE6+或!DOCTYPE 宣告為standards-compliant mode 支援。如果!DOCTYPE 宣告沒有指定為standards-compliant mode ,此屬性可以使用,但是不會發生作用。結果等同於normal 。參閱pre 對象
nowrap: 強制在同一行內顯示所有文本,直到文本結束或遭遇br 物件。請參閱noWrap 屬性
說明:
設定或檢索物件內空格字元的處理方式。
空格字符,像換行,空格,TAB,在HTML文件中預設的是被忽略的。當此屬性設定為normal 或nowrap 時,你可以使用不換行空格的命名實體來新增空格,用br 元素來新增換行。此屬性對你使用文件物件模型(DOM)操作的內容的影響與其對IE顯示內容的影響一樣。
此屬性作用於區塊物件。
相關樣式:
text-overflow
將它與white-space結合使用就不用再寫程式來判斷字串長度了,點此查看範例。
文法:
text-overflow : clip ellipsis
取值:
clip:預設值。不顯示省略標記(…),而是簡單的裁切
ellipsis:當物件內文字溢出時顯示省略標記(…)
說明:
設定或檢索是否使用一個省略標記(…)標示物件內文字的溢位。
這個屬性只是作用於水平內聯方向的,普通的西方文本的溢出。內聯溢位發生在行內的文字超出可用寬度卻沒有換行機會的時候。
若要強制溢位發生且套用ellipsis 值,作者必須設定物件的white-space 屬性值為nowrap 。
假如沒有換行機會(例如,物件容器的寬度是狹窄的,而內有很長的沒有合理斷行的文字),沒有應用nowrap 也有可能溢出。
為了使ellipsis 值被套用,此屬性必須被設定到具有不可視區域的物件。最好的選擇是設定overflow 屬性為hidden 。設定overflow 屬性為scroll 或auto 時,此屬性也會套用。但是會有滾動條出現。
透過選擇省略標記,隱藏的文字可以被選擇。當選擇發生時,省略標記會隱藏而被文字取代。
此屬性為在DHTML中製作省略標記提供了高效率的方法。
二、word-break
最常用的控制換行屬性,常與下面的word-wrap結合使用。
文法:
word-break : normal break-all keep-all
取值:
normal: 預設值。允許在詞間換行
break-all:該行為與亞洲語言的normal 相同。也允許非亞洲語言文本行的任意字內斷開。該值適合包含一些非亞洲文本的亞洲文本
keep-all:與所有非亞洲語言的normal 相同。對於中文,韓文,日文,不允許字斷開。適合包含少量亞洲文本的非亞洲文本
說明:
設定或檢索物件內文字的字內換行行為。尤其在出現多種語言時。
對於中文,應該使用break-all 。 [Cut-Page]
三、word-wrap
如果你設計的網頁不是自適應寬度的話,需要將它設定為break-word,否則可能出現版快錯開的情況。
文法:
word-wrap : normal break-word
取值:
normal:預設值。允許內容頂開指定的容器邊界
break-word:內容將在邊界內換行。如果需要,詞內換行( word-break )也會發生
說明:
設定或檢索噹噹前行超過指定容器的邊界時是否斷開轉行。
此屬性僅作用於有佈局的對象,如區塊對象。內嵌要素要使用該屬性,必須先設定物件的height 或width 屬性,或設定position 屬性為absolute ,或設定display 屬性為block 。
四、overflow,overflow-x,overflow-y
這個不是嚴格意思上的控制換行樣式,但在某些時候將它設定為hidden可以補充word-wrap的不足,比方你想在限制寬度裡只顯示一行文字,而這行文字的長度卻超過這個寬度,結合white-space+text-overflow可以達到更好的效果。
文法:
overflow : visible auto hidden scroll
取值:
visible: 預設值。不剪切內容也不添加滾動條。假如明確聲明此預設值,物件將以包含物件的window 或frame 的尺寸裁切。並且clip 屬性設定將失效
auto:在必要時物件內容才會被裁切或顯示捲軸
hidden:不顯示超過物件尺寸的內容
scroll:總是顯示捲軸
說明:
檢索或設定當物件的內容超過其指定高度及寬度時如何管理內容。
所有物件的預設值是visible ,除了textarea 物件和body 物件的預設值是auto 。設定textarea 物件此屬性值為hidden 將隱藏其捲軸。
對於table 來說,假如table-layout 屬性設定為fixed ,則td 物件支援帶有預設值為hidden 的overflow 屬性。如果設為scroll 或auto ,那麼超出td 尺寸的內容將被剪切。如果設為visible ,將導致額外的文字溢出到右邊或左邊(視direction 屬性設定而定)的單元格。
自IE5開始,此屬性在MAC平台上可用。
自IE6開始,當你使用!DOCTYPE 宣告指定了standards-compliant 模式,此屬性可以套用到html 物件。