CSS中有一種屬性可以控制文本在縱向上的排列方式,那就是“writing-mode”屬性。該屬性有四個取值:“horizontal-tb”、“vertical-rl”、“vertical-lr”和“sideways-rl”。其中“horizontal-tb”是默認值,表示文本從左到右排列,如同英語或中文一樣。而其它三種取值則表示文本縱向排列。
我們重點講述的是“vertical-lr”這一取值。該取值表示文本從上往下排列,如同日語或韓語一樣。當使用這一取值時,我們會遇到一個問題:當一行文本太長時,會超出容器的可見范圍。此時,我們需要讓文本發(fā)生縱列換行,以免超出容器。
.container { height: 300px;/*容器高度*/ width: 150px;/*容器寬度*/ writing-mode: vertical-rl;/*從上到下排列*/ overflow: hidden;/*超出范圍隱藏*/ white-space: nowrap;/*不允許文字自動換行*/ } .text { writing-mode: horizontal-tb;/*從左到右排列*/ text-orientation: upright;/*豎直排列*/ transform: rotate(-180deg);/*翻轉(zhuǎn)文本*/ }
上面給出的代碼中,我們首先設置容器的高度、寬度和排列方式。由于“vertical-lr”排列方式會導致文本超出范圍,因此我們設置了“overflow: hidden;”屬性,將超出的部分隱藏。但是,我們需要讓文本發(fā)生縱列換行,以免超出容器。為了做到這一點,我們需要給文本設置“writing-mode:horizontal-tb;”,將其從上到下排列、從左到右展示。但是,“horizontal-tb”排列方式下的文本又會讓其文字逆向排列。因此,我們需要使用“text-orientation:upright;”將豎直排列,再使用“transform:rotate(-180deg);”將其翻轉(zhuǎn)180度,讓其正向排列。
通過以上方式,我們成功地解決了在CSS中實現(xiàn)縱列換行的問題。
上一篇css文字移動淡出效果
下一篇css文字窄長