由於漢字的特殊性,在css網頁布局中,中文排版有別於英文排版。排版是一個麻煩的問題,小編認為,作為一個優秀的網頁設計師和網頁制作人員,掌握一些簡單的中文排版技巧是不可或缺的,所以今天特意總結了幾個簡單實用的技巧,希望對大家有所幫助。
一、如何設定文字字體、顏色、大小等
font-style設定斜體,比如font-style:italic
font-weight設定文字粗細,比如font-weight:bold
font-size設定文字大小,比如font-size:12px
line-height設定行距,比如line-height:150%
color設定文字顏色,注意不是font-color喔,比如color:red
font-family設定字體,比如font-family:"LucidaGrande",Verdana,Lucida,Arial,Helvetica,宋體,sans-serif
二、使用margin,text-align 控制段落
中文段落使用p標簽,左右、段前段后的空白,都可以通過margin來控制。
比如
p{
margin:18px 6px 6px 18px;/*分別是上、右、下、左,十二點開始的順時針方向*/
}
而text-align則用於文字的對齊方式。
比如
p{
text-align:center;/*居中對齊*/
}
除了居中對齊之外,對齊方式還有左對齊、右對齊和兩端對齊,對應的屬性值分別為left、right、justify。
提示:由於默認的margin值會導致頁面排版出現問題,特別是ul、ol、p、dt、dd等標簽。小編的解決之道就是把所有標簽的margin值定義為0。
三、豎排文字—使用writing-mode
writing-mode屬性有兩個值lr-tb和tb-rl,前者是默認的左-右、上-下,后者是上-下、右-左。
寫法如
p{
writing-mode:tb-rl;
}
四、使用list-style美化列表
如果我們的排版涉及到列表,不妨考慮為它添加些項目符號進行美化。
在CSS里,項目符號包括disc(實心圓點)、circle(空心圓圈)、square(實心方塊)、decimal(阿拉伯數字)、lower-roman(小寫羅馬數字)、upper-roman(大寫羅馬數字)、lower-alpha(小寫英文字母)、upper-alpha(大寫英文字母)、none(無)。
嘿嘿!我們可用的項目符號數量不少喔,但美中不足的是我們不能為它們設定大小,也不能設定垂直方向上的對齊。
如果我們想設定一個列表的項目符號為方塊,可以這樣寫:
li{
list-style:square;
}
小編在這里提醒大家一下:當一個項目列表的左外邊距設為零的時候,list-style-position:outside的項目符號不會顯示。
五、使用text-overflow 實現固定寬度漢字截斷
用后台語言可以對從數據庫里的字段內容做截斷處理,如果想對列表應用該樣式,我們可以這樣寫:
li{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
六、首字下沉
如果你想制作首字下沉效果,不妨考慮偽對象:first-letter並配合font-size、float屬性。
p:first-letter{
padding:6px;
font-size:32pt;
float:left;
}
七、首行縮進—使用text-indent
text-indent可以使得容器內首行縮進一定單位。比如中文段落一般每段前空兩個漢字。
可以這么寫
p{
text-indent:2em;/*em是相對單位,2em即現在一個字大小的兩倍*/
}
注意:如果font-size是12px的話,那么text-indent:2em則代表縮進24px。
八、固定寬度漢字(詞)折行—使用word-break
在排版的時候,你是否為一個詞組,其中一個字出現在上面而另一個字折斷到下一行去而發愁呢?不用愁,這時使用word-break就可以輕松解決問題了。
九、關於漢字注音—使用ruby標簽和ruby-align屬性
最后小編向大家介紹一下ruby標簽和ruby-align屬性 。這是一個比較冷門的技巧,可能平時使用不多,但小編覺得不妨提供給大家預防不時之需。
如果我們想為漢字注音就可以這樣寫
<ruby>注音<rt style="font-size:11px;">zhuyin</rt></ruby>
然后通過ruby-align設置其對齊方式。
其他的一些屬性
column-width: 用於指定列的寬度,一旦指定一個值,瀏覽器會根據當前瀏覽器的寬度,動態的決定將內容分為多少列。column-rule: 這個屬性是一種簡寫,其實它包含了三個不同的屬性,分別是column-rule-width,column-rule-style,column-rule-color,反正實現的就是在列之間加上一個分割線,和border屬性的設置是相同的。column-gap: 用於設置分欄的空隙屬性,這個值由分欄兩側平攤。
如果想要實現分欄,我們可以利用 column-width ,也可以使用 column-count 屬性,但是我們通常不這么做,因為這意味着必須要將內容分成三列,而不考慮當前瀏覽器的寬度,這是非常不友好的設計。
利用 column-width 的優點是,我們的列數跟隨瀏覽器窗口的變化而變化(響應式),即列數 = 瀏覽器寬度 / columnWidth, 不過這么做也有一個顯而易見的問題,那就是我們很難把握 column-width 數值大小,如果過大,那對於中等屏幕可能都仍然是一列,如果過小,那么在大屏幕上又會分成過多的列。
利用 column-count 的優點是,我們可以隨心所欲的設置列數,保證布局達到我們想要的結果,這么做的缺點就是列數是固定的無法跟隨瀏覽器寬度的變化而發生改變,這就導致了很嚴重的問題,比如對於一個 480px 寬的設備,我們設置為兩列,那么可能只顯示兩三個單詞就要換行,非常的不友好。
實際上,我們可以同時采用 column-width和 column-count,什么意思呢?比如說我們設置 column-width=480px; column-count=2的時候,這兩個屬性就會相互制約,也就是說對於相當大的屏幕,比如說 2100px寬的屏幕,它也只會顯示兩列,因為我們設置了 column-count = 2,但是對於小屏幕,比如 640px 寬的屏幕,由於 column-width=480px,這就意味着放不下兩列,這時就會變成一列。
可見,同時利用這兩個屬性就可以克服二者的缺點而集中二者的優點。
知道了以上屬性之后,相信你可以很快的將我們示圖中的效果實現出來,這里我們不在粘貼源代碼,你可以 點此下載 。這里需要將一下,我們在頁面中引用了一些好看的字體,如果你也想使用,你住需要將下面這一行代碼粘貼到你的 <head> 標簽下即可。
<link href='http://fonts.googleapis.com/css?family=Lobster|Terminal+Dosis' rel='stylesheet' type='text/css'>
display: 如果想要使用Flexbox布局,那么我們首先要將這個屬性的值設置為flex。-
flex-flow: 這個屬性其實是兩個屬性的縮寫,其中一個是flex-direction用於設置主軸的方向,如果設置為row則是一水平方向為主軸,如果為column垂直方向為主軸。還有一個屬性是flex-wrap, 用於設置元素換行,當元素超出父元素寬度時就自動換行,這就可以實現自適應屏幕的效果。 -
flex: 這個屬性一般在設置display為flex的子元素中設置,有三個參數,在這里不在詳細解釋,因為我也不太能組織語言解釋它,可以百度查看一下該屬性的使用方法。
