學習web標準,遵循Web標準進行開發和製作。一直以來52CSS.com與大家討論的很多是關於版面方面的問題,而頁面中主要的內容呈現,是圖片和文字,今天和大家討論關於CSS網頁版面中文字排版的相關問題。
如何設定字體、顏色、大小、段落空白,首字下沉、首行縮排。最後講一些常用的web頁面中文排版,像是中文字的截斷、固定寬度字內折行(word-wrap和word-break)等等。因為只是寫一些應用方面的心得,如果需要完整的CSS屬性介紹,更深入的進行學習,歡迎您參考52CSS.com中更多的教程。
一、設定文字字體、顏色、大小等使用font等。
font-style設定斜體,例如font-style: italic;
font-weight設定文字粗細,例如font-weight: bold;
font-size設定文字大小,例如font-size: 12px;(或9pt,不同單位顯示問題參考CSS手冊)
line-height設定行距,如line-height: 150%;
color設定文字顏色(注意不是font-color),例如color: red;
font-family設定字體,如font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;(這是通用的寫法)
二、段落排版:使用margin、padding和text-align。
中文段落使用<p>標籤(也可以是其他容器),左右(相當於縮排)、段落前段後的空白,都可以用margin或padding。比如:
Example Source Code [www.downcodes.com]
p{
margin: 18px 6px 6px 18px;
/*分別是上、右、下、左,十二點開始的順時針方向*/
}
文字的對齊方式用text-align,例如:
Example Source Code [www.downcodes.com]
p{
text-align: center; /*居中對齊*/
}
對齊方式還有left、right和justify(兩端對齊)
有很多新手對margin、padding不是很熟悉,看下面圖片的表示。
三、豎排文字:使用writing-mode。
writing-mode屬性有兩個值lr-tb和tb-rl,前者是預設的左-右、上-下,後者是上-下、右-左。
比如:
Example Source Code [www.downcodes.com]
p{
writing-mode: tb-rl;
}
可以結合direction排版。
四、項目符號的問題:使用list-style
在CSS裡項目符號有disc(實心圓點)、circle(空心圓圈)、square(實心方塊)、decimal(阿拉伯數字)、lower-roman(小寫羅馬數字)、upper-roman(大寫羅馬數字)、lower -alpha(小寫英文字母)、upper-alpha(大寫英文字母)、none(無)。例如設定一個清單(ul或ol)的項目符號為方塊,如:
Example Source Code [www.downcodes.com]
li{
list-style: square;
}
另外list-style還有一些數值,例如可以採用一些小圖片作為項目符號,在list-style下直接寫url(“圖片地址”)就可以了。但52CSS.com極力不提倡這樣的方式。建議您設定圖片為li 的背景。
五、首字下沉效果
偽物件:first-letter配合font-size、float可以製作首字下沉效果。
比如:
Example Source Code [www.downcodes.com]
p:first-letter{
padding: 6px;
font-size: 32pt;
float: left;
}
六、文字縮排:使用text-indent
text-indent可以使得容器內首行縮排一定單位。例如中文段落一般每段前空兩個漢字。可以這麼寫:
Example Source Code [www.downcodes.com]
p{
text-indent: 2em; /*em是相對單位,2em即現在一個字大小的兩倍*/
}
如果font-size是12px的話,那麼text-indent: 2em則縮排24px。
七、固定寬度漢字截斷:使用text-overflow(顯示省略號效果)
用後台語言可以對從資料庫裡的欄位內容做截斷處理,比如說截12個漢字(之後用省略號)。但是有時還需要html標籤的過濾等,而用CSS來控制則沒有這個問題。例如對清單套用以下樣式:
Example Source Code [www.downcodes.com]
li{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
八、固定寬度漢字(字)折行:使用word-break
舉個例子,比如說要在一個固定寬度容器裡面顯示很多地名(假設以空格分隔),為了避免地名中間斷開(即一個字在上面而另一個字折斷到下一行去了)。則可以使用word-break。比如:
Example Source Code [www.downcodes.com]
<div style="width:210px;height: 200px;background: #ccc;word-break:keep-all">
南京上海上海上南上海上海南京上海上海上海南京上海上海南京上海上海南京上海南京上海南京上海南京上海南京上海南京上海上海南京上海上海
</div>
值得注意的是裡面的空格不能以代替(最少要有一個軟空格)。 。
九、漢字注音:使用ruby標籤和ruby-align屬性
例如<ruby>注音<rt style="font-size: 11px;">zhu yin</rt></ruby>,可以利用ruby-align設定對齊方式。這是在CSS手冊裡面看到的,具體可以自行查閱ruby-align項。