本文作者是:Trenton Moss。
發(fā)表網(wǎng)站是:
http://www.webcredible.co.uk。
本翻譯并未得到作者或網(wǎng)站授權。一切權利都歸原作者及原網(wǎng)站所有。
如果你得到原作者或原發(fā)表網(wǎng)站的授權,可以自由使用本翻譯。
1. CSS字體屬性簡(jiǎn)寫(xiě)規則
一般用CSS設定字體屬性是這樣做的:
font-weight: bold;
font-style: italic;
font-varient: small-caps;
font-size: 1em;
line-height: 1.5em;
font-family: verdana,sans-serif
但也可以把它們全部寫(xiě)到一行上去:
font: bold italic small-caps 1em/1.5em verdana,sans-serif
真不錯!只有一點(diǎn)要提醒的:這種簡(jiǎn)寫(xiě)方法只有在同時(shí)指定font-size和font-family屬性時(shí)才起作用。而且,如果你沒(méi)有設定font-weight, font-style, 以及 font-varient ,他們會(huì )使用缺省值,這點(diǎn)要記上。
2. 同時(shí)使用兩個(gè)類(lèi)
一般只能給一個(gè)元素設定一個(gè)類(lèi)(Class),但這并不意味著(zhù)不能用兩個(gè)。事實(shí)上,你可以這樣:
<p class="text side">...</p>
同時(shí)給P元素兩個(gè)類(lèi),中間用空格格開(kāi),這樣所有text和side兩個(gè)類(lèi)的屬性都會(huì )加到P元素上來(lái)。如果它們兩個(gè)類(lèi)中的屬性有沖突的話(huà),后設置的起作用,即在CSS文件中放在后面的類(lèi)的屬性起作用。
3. CSS border的缺省值
通??梢栽O定邊界的顏色,寬度和風(fēng)格,如:
border: 3px solid #000
這位把邊界顯示成3像素寬,黑色,實(shí)線(xiàn)。但實(shí)際上這里只需要指定風(fēng)格即可。
如果只指定了風(fēng)格,其他屬性就會(huì )使用缺省值。一般地,Border的寬度缺省是medium,一般等于3到4個(gè)像素;缺省的顏色是其中文字的顏色。如果這個(gè)值正好合適的話(huà),就不用設那么多了。
4. CSS用于文檔打印
許多網(wǎng)站上都有一個(gè)針對打印的版本,但實(shí)際上這并不需要,因為可以用CSS來(lái)設定打印風(fēng)格。
也就是說(shuō),可以為頁(yè)面指定兩個(gè)CSS文件,一個(gè)用于屏幕顯示,一個(gè)用于打?。?br>
<link type="text/css" rel="stylesheet" href="stylesheet.css" media="screen" />
<link type="text/css" rel="stylesheet" href="printstyle.css" media="print" />
第1行就是顯示,第2行是打印,注意其中的media屬性。
但應該在打印CSS中寫(xiě)什么東西呢?你可以按設計普通CSS的方法來(lái)設定它。設計的同時(shí)就可以把這個(gè)CSS設成顯示CSS來(lái)檢查它的效果。也許你會(huì )使用
display: none 這個(gè)命令來(lái)關(guān)掉一些裝飾圖片,再關(guān)掉一些導航按鈕。要想了解更多,可以看“
打印差異”這一篇。
5. 圖片替換技巧
一般都建議用標準的HTML來(lái)顯示文字,而不要使用圖片,這樣不但快,也更具可讀性。但如果你想用一些特殊字體時(shí),就只能用圖片了。
比如你想整個(gè)賣(mài)東西的圖標,你就用了這個(gè)圖片:
<h1><img src="widget-image.gif" alt="Buy widgets" /></h1>
這當然可以,但對搜索引擎來(lái)說(shuō),和正常文字相比,它們對alt里面的替換文字幾乎沒(méi)有興趣這是因為許多設計者在這里放許多關(guān)鍵詞來(lái)騙搜索引擎。所以方法應該是這樣的:
<h1>Buy widgets</h1>
但這樣就沒(méi)有特殊字體了。要想達到同樣效果,可以這樣設計CSS:
h1
{
background: url(widget-image.gif) no-repeat;
height: image height
text-indent: -2000px
}
注意把image height換成真的圖片的高度。這里,圖片會(huì )當作背景顯示出來(lái),而真正的文字由于設定了-2000像素這個(gè)縮進(jìn),它們會(huì )出現在屏幕左邊2000點(diǎn)的地方,就看不見(jiàn)了。但這對于關(guān)閉圖片的人來(lái)說(shuō),可能全部看不到了,這點(diǎn)要注意。
6. CSS box模型的另一種調整技巧
這個(gè)Box模型的調整主要是針對IE6之前的IE瀏覽器的,它們把邊界寬度和空白都算在元素寬度上。比如:
#box
{
width: 100px;
border: 5px;
padding: 20px
}
這樣調用它:
<div id="box">...</div>
這時(shí)盒子的全寬應該是150點(diǎn),這在除IE6之前的IE瀏覽器之外的所有瀏覽器上都是正確的。但在IE5這樣的瀏覽器上,它的全寬仍是100點(diǎn)??梢杂靡郧叭税l(fā)明的
Box調整方法來(lái)處理這種差異。
但用CSS也可以達到同樣的目的,讓它們顯示效果一致。
#box
{
width: 150px
}
#box div
{
border: 5px;
padding: 20px
}
這樣調用:
<div id="box"><div>...</div></div>
這樣,不管什么瀏覽器,寬度都是150點(diǎn)了。
7. 塊元素居中對齊
如果想做個(gè)固定寬度的網(wǎng)頁(yè)并且想讓網(wǎng)頁(yè)水平居中的話(huà),通常是這樣:
#content
{
width: 700px;
margin: 0 auto
}
你會(huì )使用
<div id="content"> 來(lái)圍上所有元素。這很簡(jiǎn)單,但不夠好,IE6之前版本會(huì )顯示不出這種效果。改CSS如下:
body
{
text-align: center
}
#content
{
text-align: left;
width: 700px;
margin: 0 auto
}
這會(huì )把網(wǎng)頁(yè)內容都居中,所以在Content中又加入了
text-align: left 。
8. 用CSS來(lái)處理垂直對齊
垂直對齊用表格可以很方便地實(shí)現,設定表格單元
vertical-align: middle 就可以了。但對CSS來(lái)說(shuō)這沒(méi)用。如果你想設定一個(gè)導航條是2em高,而想讓導航文字垂直居中的話(huà),設定這個(gè)屬性是沒(méi)用的。
CSS方法是什么呢?對了,把這些文字的行高設為 2em:
line-height: 2em ,這就可以了。
9. CSS在容器內定位
CSS的一個(gè)好處是可以把一個(gè)元素任意定位,在一個(gè)容器內也可以。比如對這個(gè)容器:
#container
{
position: relative
}
這樣容器內所有的元素都會(huì )相對定位,可以這樣用:
<div id="container"><div id="navigation">...</div></div>
如果想定位到距左30點(diǎn),距上5點(diǎn),可以這樣:
#navigation
{
position: absolute;
left: 30px;
top: 5px
}
當然,你還可以這樣:
margin: 5px 0 0 30px
注意4個(gè)數字的順序是:上、右、下、左。當然,有時(shí)候定位的方法而不是邊距的方法更好些。
10. 直通到屏幕底部的背景色
在垂直方向是進(jìn)行控制是CSS所不能的。如果你想讓導航欄和內容欄一樣直通到頁(yè)面底部,用表格是很方便的,但如果只用這樣的CSS:
#navigation
{
background: blue;
width: 150px
}
較短的導航條是不會(huì )直通到底部的,半路內容結束時(shí)它就結束了。該怎么辦呢?
不幸的是,只能采用欺騙的手段了,給這較短的一欄加上個(gè)背景圖,寬度和欄寬一樣,并讓它的顏色和設定的背景色一樣。
body
{
background: url(blue-image.gif) 0 0 repeat-y
}
此時(shí)不能用em做單位,因為那樣的話(huà),一旦讀者改變了字體大小,這個(gè)花招就會(huì )露餡,只能使用px。