2011年11月22日 星期二

CSS網頁佈局中文排版的9則技巧

SS網頁佈局中文排版有別於國外所介紹的英文排版,由於漢字的特殊性,所以有一些地方是需要大家注意的。)


一、如何設定文字字體、顏色、大小 — 使用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;(這是通用的寫法)
  以上都可以寫在一行font屬性裏(除了color屬性需要單獨寫):
  font: italic bold 12px/150% "Lucida Grande", 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(兩端對齊)
  PS.談起margin,我習慣於在寫CSS的時候為所有的標籤定義margin: 0; 因為時而出現由於默認的margin值導致頁面排版問題,而自己找不到原因(特別注意的是ul/ol/p/dt/dd等標籤)


三、直排文字 — 使用writing-mode
  writing-mode屬性有兩個值lr-tb和tb-rl,前者是默認的左-右、上-下,後者是上-下、右-左。
  比如:
p{
writing-mode: tb-rl;
}
  可以結合direction排版。


四、專案符號的問題 — 使用list-style
  在CSS裏專案符號有disc(實心圓點)、circle(空心圓圈)、square(實心方塊)、decimal(阿拉伯數字)、lower-roman(小寫羅馬數字)、upper-roman(大寫羅馬數字)、lower-alpha(小寫英文字母)、upper-alpha(大寫英文字母)、none(無)。比如設定一個列表(ul或ol)的專案符號為方塊,如:
li{
list-style: square;  
}
  另外list-style還有一些值,比如可以採用一些小圖片作為專案符號,在list-style下直接寫url(“圖片位址”)就可以了。注意如果一個項目列表的左外補丁(margin-left)設為零的時候,list-style-position: outside(默認是outside)的專案符號不會顯示。可惜的是上述的專案符號似乎並不能設定大小,圓點和方塊始終是那麼點。並且不能設定垂直方向上的對齊。


五、首字下沉 — 使用:first-letter
  為對象: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。


七、關於漢字注音 — 使用ruby標籤和ruby-align屬性
  比如說<ruby>注音<rt style="font-size: 11px;">zhu yin</rt></ruby>,可以利用ruby-align設置對齊方式。這是在CSS手冊裏面看到的,具體可以自行查閱ruby-align項。


八、固定寬度漢字截斷 — 使用text-overflow
  用後臺語言可以對從資料庫裏的欄位內容做截斷處理,比如說截12個漢字(之後用省略號)。但是有時還需要html標籤的過濾等,而用CSS來控制則沒有這個問題。比如對列表應用以下樣式:
li{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
  不過只能處理文字在一行上的截斷,不能處理多行。


九、固定寬度漢字(詞)折行 — 使用word-break
  舉個例子,比如說要在一個固定寬度容器裏面顯示很多地名(假設以空格分隔),為了避免地名中間斷開(即一個字在上面而另一個字折斷到下一行去了)。則可以使用word-break。比如
<div style="width:210px;height: 200px;background: #ccc;word-break:keep-all">

本文章轉貼自:http://freeshare2u.com/

沒有留言:

張貼留言