CSS 網(wǎng)頁(yè)布局中文排版的9則技巧
發(fā)布時(shí)間:2009-12-21 11:51:28 作者:佚名
我要評(píng)論

CSS網(wǎng)頁(yè)布局中文排版有別于國(guó)外所介紹的英文排版,由于漢字的特殊性,所以有一些地方是需要大家注意的。這個(gè)文章或許對(duì)大家對(duì)排版的控制有所幫助。
一、如何設(shè)定文字字體、顏色、大小 — 使用font
font-style設(shè)定斜體,比如font-style: italic;
font-weight設(shè)定文字粗細(xì),比如font-weight: bold;
font-size設(shè)定文字大小,比如font-size: 12px;(或者9pt,不同單位顯示問(wèn)題參考CSS手冊(cè))
line-height設(shè)定行距,比如line-height: 150%;
color設(shè)定文字顏色(注意不是font-color),比如color: red;
font-family設(shè)定字體,比如font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;(這是通用的寫法)
以上都可以寫在一行font屬性里(除了color屬性需要單獨(dú)寫):
font: italic bold 12px/150% "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;
二、如何控制段落排版 — 使用margin,text-align
中文段落使用<p>標(biāo)簽,左右(相當(dāng)于縮進(jìn))、段前段后的空白,都可以用margin。比如:
文字的對(duì)齊方式用text-align,比如:
對(duì)齊方式還有l(wèi)eft、right和justify(兩端對(duì)齊)
PS.談起margin,我習(xí)慣于在寫CSS的時(shí)候?yàn)樗械臉?biāo)簽定義margin: 0; 因?yàn)闀r(shí)而出現(xiàn)由于默認(rèn)的margin值導(dǎo)致頁(yè)面排版問(wèn)題,而自己找不到原因(特別注意的是ul/ol/p/dt/dd等標(biāo)簽)
三、豎排文字 — 使用writing-mode
writing-mode屬性有兩個(gè)值lr-tb和tb-rl,前者是默認(rèn)的左-右、上-下,后者是上-下、右-左。
比如:
可以結(jié)合direction排版。
四、項(xiàng)目符號(hào)的問(wèn)題 — 使用list-style
在CSS里項(xiàng)目符號(hào)有disc(實(shí)心圓點(diǎn))、circle(空心圓圈)、square(實(shí)心方塊)、decimal(阿拉伯?dāng)?shù)字)、lower-roman(小寫羅馬數(shù)字)、upper-roman(大寫羅馬數(shù)字)、lower-alpha(小寫英文字母)、upper-alpha(大寫英文字母)、none(無(wú))。比如設(shè)定一個(gè)列表(ul或ol)的項(xiàng)目符號(hào)為方塊,如:
另外list-style還有一些值,比如可以采用一些小圖片作為項(xiàng)目符號(hào),在list-style下直接寫url(“圖片地址”)就可以了。注意如果一個(gè)項(xiàng)目列表的左外補(bǔ)?。╩argin-left)設(shè)為零的時(shí)候,list-style-position: outside(默認(rèn)是outside)的項(xiàng)目符號(hào)不會(huì)顯示。可惜的是上述的項(xiàng)目符號(hào)似乎并不能設(shè)定大小,圓點(diǎn)和方塊始終是那么點(diǎn)。并且不能設(shè)定垂直方向上的對(duì)齊。
五、首字下沉 — 使用:first-letter
偽對(duì)象:first-letter配合font-size、float可以制作首字下沉效果。
比如:
六、首行縮進(jìn) — 使用text-indent
text-indent可以使得容器內(nèi)首行縮進(jìn)一定單位。比如中文段落一般每段前空兩個(gè)漢字。可以這么寫:
如果font-size是12px的話,那么text-indent: 2em則縮進(jìn)24px。
七、關(guān)于漢字注音 — 使用ruby標(biāo)簽和ruby-align屬性
比如說(shuō)<ruby>注音<rt style="font-size: 11px;">zhu yin</rt></ruby>,可以利用ruby-align設(shè)置對(duì)齊方式。這是在CSS手冊(cè)里面看到的,具體可以自行查閱ruby-align項(xiàng)。
八、固定寬度漢字截?cái)?nbsp;— 使用text-overflow
用后臺(tái)語(yǔ)言可以對(duì)從數(shù)據(jù)庫(kù)里的字段內(nèi)容做截?cái)嗵幚?,比如說(shuō)截12個(gè)漢字(之后用省略號(hào))。但是有時(shí)還需要html標(biāo)簽的過(guò)濾等,而用CSS來(lái)控制則沒有這個(gè)問(wèn)題。比如對(duì)列表應(yīng)用以下樣式:
不過(guò)只能處理文字在一行上的截?cái)?,不能處理多行?nbsp;
九、固定寬度漢字(詞)折行 — 使用word-break
舉個(gè)例子,比如說(shuō)要在一個(gè)固定寬度容器里面顯示很多地名(假設(shè)以空格分隔),為了避免地名中間斷開(即一個(gè)字在上面而另一個(gè)字折斷到下一行去了)。則可以使用word-break。比如:
值得注意的是里面的空格不能以 代替(最少要有一個(gè)軟空格)。
font-style設(shè)定斜體,比如font-style: italic;
font-weight設(shè)定文字粗細(xì),比如font-weight: bold;
font-size設(shè)定文字大小,比如font-size: 12px;(或者9pt,不同單位顯示問(wèn)題參考CSS手冊(cè))
line-height設(shè)定行距,比如line-height: 150%;
color設(shè)定文字顏色(注意不是font-color),比如color: red;
font-family設(shè)定字體,比如font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;(這是通用的寫法)
以上都可以寫在一行font屬性里(除了color屬性需要單獨(dú)寫):
font: italic bold 12px/150% "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif;
二、如何控制段落排版 — 使用margin,text-align
中文段落使用<p>標(biāo)簽,左右(相當(dāng)于縮進(jìn))、段前段后的空白,都可以用margin。比如:
p{
margin: 18px 6px 6px 18px; /*分別是上、右、下、左,十二點(diǎn)開始的順時(shí)針?lè)较?/
}
margin: 18px 6px 6px 18px; /*分別是上、右、下、左,十二點(diǎn)開始的順時(shí)針?lè)较?/
}
文字的對(duì)齊方式用text-align,比如:
p{
text-align: center; /*居中對(duì)齊*/
}
text-align: center; /*居中對(duì)齊*/
}
對(duì)齊方式還有l(wèi)eft、right和justify(兩端對(duì)齊)
PS.談起margin,我習(xí)慣于在寫CSS的時(shí)候?yàn)樗械臉?biāo)簽定義margin: 0; 因?yàn)闀r(shí)而出現(xiàn)由于默認(rèn)的margin值導(dǎo)致頁(yè)面排版問(wèn)題,而自己找不到原因(特別注意的是ul/ol/p/dt/dd等標(biāo)簽)
三、豎排文字 — 使用writing-mode
writing-mode屬性有兩個(gè)值lr-tb和tb-rl,前者是默認(rèn)的左-右、上-下,后者是上-下、右-左。
比如:
p{
writing-mode: tb-rl;
}
writing-mode: tb-rl;
}
可以結(jié)合direction排版。
四、項(xiàng)目符號(hào)的問(wèn)題 — 使用list-style
在CSS里項(xiàng)目符號(hào)有disc(實(shí)心圓點(diǎn))、circle(空心圓圈)、square(實(shí)心方塊)、decimal(阿拉伯?dāng)?shù)字)、lower-roman(小寫羅馬數(shù)字)、upper-roman(大寫羅馬數(shù)字)、lower-alpha(小寫英文字母)、upper-alpha(大寫英文字母)、none(無(wú))。比如設(shè)定一個(gè)列表(ul或ol)的項(xiàng)目符號(hào)為方塊,如:
li{
list-style: square;
}
list-style: square;
}
另外list-style還有一些值,比如可以采用一些小圖片作為項(xiàng)目符號(hào),在list-style下直接寫url(“圖片地址”)就可以了。注意如果一個(gè)項(xiàng)目列表的左外補(bǔ)?。╩argin-left)設(shè)為零的時(shí)候,list-style-position: outside(默認(rèn)是outside)的項(xiàng)目符號(hào)不會(huì)顯示。可惜的是上述的項(xiàng)目符號(hào)似乎并不能設(shè)定大小,圓點(diǎn)和方塊始終是那么點(diǎn)。并且不能設(shè)定垂直方向上的對(duì)齊。
五、首字下沉 — 使用:first-letter
偽對(duì)象:first-letter配合font-size、float可以制作首字下沉效果。
比如:
p:first-letter{
padding: 6px;
font-size: 32pt;
float: left;
}
padding: 6px;
font-size: 32pt;
float: left;
}
六、首行縮進(jìn) — 使用text-indent
text-indent可以使得容器內(nèi)首行縮進(jìn)一定單位。比如中文段落一般每段前空兩個(gè)漢字。可以這么寫:
p{
text-indent: 2em; /*em是相對(duì)單位,2em即現(xiàn)在一個(gè)字大小的兩倍*/
}
text-indent: 2em; /*em是相對(duì)單位,2em即現(xiàn)在一個(gè)字大小的兩倍*/
}
如果font-size是12px的話,那么text-indent: 2em則縮進(jìn)24px。
七、關(guān)于漢字注音 — 使用ruby標(biāo)簽和ruby-align屬性
比如說(shuō)<ruby>注音<rt style="font-size: 11px;">zhu yin</rt></ruby>,可以利用ruby-align設(shè)置對(duì)齊方式。這是在CSS手冊(cè)里面看到的,具體可以自行查閱ruby-align項(xiàng)。
八、固定寬度漢字截?cái)?nbsp;— 使用text-overflow
用后臺(tái)語(yǔ)言可以對(duì)從數(shù)據(jù)庫(kù)里的字段內(nèi)容做截?cái)嗵幚?,比如說(shuō)截12個(gè)漢字(之后用省略號(hào))。但是有時(shí)還需要html標(biāo)簽的過(guò)濾等,而用CSS來(lái)控制則沒有這個(gè)問(wèn)題。比如對(duì)列表應(yīng)用以下樣式:
li{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
不過(guò)只能處理文字在一行上的截?cái)?,不能處理多行?nbsp;
九、固定寬度漢字(詞)折行 — 使用word-break
舉個(gè)例子,比如說(shuō)要在一個(gè)固定寬度容器里面顯示很多地名(假設(shè)以空格分隔),為了避免地名中間斷開(即一個(gè)字在上面而另一個(gè)字折斷到下一行去了)。則可以使用word-break。比如:
<div style="width:210px;height: 200px;background: #ccc;word-break:keep-all">
南京上海 上海上 南 上海上海 南京 上海上海上海 南京上海 上海 南京上海 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京上海 上海 南京上海 上海
</div>
南京上海 上海上 南 上海上海 南京 上海上海上海 南京上海 上海 南京上海 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京上海 上海 南京上海 上海
</div>
值得注意的是里面的空格不能以 代替(最少要有一個(gè)軟空格)。
相關(guān)文章
- 本文主要介紹了css九宮格布局的五種方法,內(nèi)容包括grid布局、flex布局、table布局、float浮動(dòng)定位、inline-block+letter-spacing屬性這五種方法的實(shí)現(xiàn),感興趣的可以了解下2023-09-18
- 在Web開發(fā)中,經(jīng)常會(huì)遇到需要將元素水平和垂直居中的情況,今天,將為大家分享幾種CSS方法,讓你的元素輕松居中,讓頁(yè)面更美觀吸引人,感興趣的小伙伴可以自己動(dòng)手試一試2023-09-08
- 相信大家在面試的時(shí)候也會(huì)經(jīng)常碰到css實(shí)現(xiàn)元素居中的方法,下面我介紹6種方法給大家,歡迎大家評(píng)論區(qū)交流2023-09-07
flex布局中使用flex-wrap實(shí)現(xiàn)換行的項(xiàng)目實(shí)踐
最近需要做個(gè)換行的布局,本文主要介紹了flex布局中使用flex-wrap實(shí)現(xiàn)換行的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需2022-06-16CSS布局之浮動(dòng)(float)和定位(position)屬性的區(qū)別
今天看到有朋友留言問(wèn)浮動(dòng)和定位有什么區(qū)別,如何使用?今天找了篇文章,講的比較通俗易懂,供大家參考2021-09-23- 這篇文章主要介紹了css實(shí)現(xiàn)元素居中的N種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
div水平布局兩邊對(duì)齊的三種實(shí)現(xiàn)方法
這篇文章主要介紹了div水平布局兩邊對(duì)齊的三種實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起2021-01-21waterfall瀑布流布局+動(dòng)態(tài)渲染的實(shí)現(xiàn)
這篇文章主要介紹了waterfall瀑布流布局+動(dòng)態(tài)渲染的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起2021-01-19頁(yè)面中有間隔的方格布局如何完美實(shí)現(xiàn)方法
這篇文章主要介紹了頁(yè)面中有間隔的方格布局如何完美實(shí)現(xiàn)方法。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)2020-11-27css實(shí)現(xiàn)六種自適應(yīng)兩欄布局方式
這篇文章主要介紹了css實(shí)現(xiàn)六種自適應(yīng)兩欄布局方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)2020-10-28