CSS樣式表設(shè)計(jì)的十條技巧_Web標(biāo)準(zhǔn)教程
1、css 字體簡(jiǎn)寫規(guī)則
當(dāng)使用css定義字體時(shí)你可能會(huì)這樣做:
以下為引用的內(nèi)容: font-size: 1em; line-height: 1.5em; font-weight: bold; font-style: italic; font-variant: small-caps; font-family: verdana,serif; |
事實(shí)上你可以簡(jiǎn)寫這些屬性:
font: 1em/1.5em bold italic small-caps verdana,serif
現(xiàn)在好多了吧,不過有一點(diǎn)要注重:使用這一簡(jiǎn)寫方式你至少要指定font-size和font-family屬性,其他的屬性(如font-weight, font-style,font-varient)如未指定將自動(dòng)使用默認(rèn)值。
2、同時(shí)使用兩個(gè)class
通常我們只為屬性指定一個(gè)class,但這并不等于你只能指定一個(gè),實(shí)際上,你想指定多少就可以指定多少,例如:
<p class="text side">...</p>通過同時(shí)使用兩個(gè)class(使用空格而不是逗號(hào)分割),這個(gè)段落將同時(shí)應(yīng)用兩個(gè)class中制定的規(guī)則。假如兩者中有任何規(guī)則重疊,那么后一個(gè)將獲得實(shí)際的優(yōu)先應(yīng)用。
3、css中邊框(border)的默認(rèn)值
當(dāng)編寫一條邊框的規(guī)則時(shí),你通常會(huì)指定顏色、寬度以及樣式(任何順序均可)。例如:border: 3px solid #000(3像素寬的黑色實(shí)線邊框),其實(shí)這個(gè)例子中唯一需要指定的值只是樣式。假如你指定樣式為實(shí)線(solid),那么其余的值將使用默認(rèn)值:默認(rèn)的寬度為中等(相當(dāng)于3到4像素);默認(rèn)的顏色為邊框里的文字顏色。假如這正是你想要的效果,你完全可以不在css里指定。
4、!important會(huì)被IE忽略
在css中,通常最后指定的規(guī)則會(huì)獲得優(yōu)先權(quán)。然而對(duì)除了IE以外的瀏覽器來說,任何后面標(biāo)有!important的語(yǔ)句將獲得絕對(duì)的優(yōu)先權(quán),例如:margin-top: 3.5em !important; margin-top: 2em 除IE以外所有瀏覽器中的頂部邊界都是3.5em,而IE為2em,有時(shí)候這一點(diǎn)很有用,尤其在使用相對(duì)邊界值時(shí)(就像這個(gè)例子),可以顯示出IE與其他瀏覽器的細(xì)微差別。(很多人可能還注重到了css的子選擇器也是會(huì)被IE忽略的)
5、圖片替換的技巧
使用標(biāo)準(zhǔn)的html而不是圖片來顯示文字通常更為明智,除了加快下載還可以獲得更好的可用性。但是假如你決心使用訪問者的機(jī)器中可能沒有的字體時(shí),你只能選擇圖片。
舉例來說,你想在每一頁(yè)的頂部使用“Buy widgets”的標(biāo)題,但你同時(shí)又希望這是能被搜索引擎發(fā)現(xiàn)的,為了美觀你使用了少見的字體那么你就得用圖片來顯示了:
<h1><img src="/widget-image.gif" alt="Buy widgets" /></h1>
這樣當(dāng)然沒錯(cuò),但是有證據(jù)顯示搜索引擎對(duì)真實(shí)文本的重視遠(yuǎn)超過alt文本(因?yàn)橐呀?jīng)有太多網(wǎng)站使用alt文本充當(dāng)要害字),因此,我們得用另一種方法: <h1><span>Buy widgets</span></h1>,那你的漂亮字體怎么辦呢?下面的css可以幫上忙:
以下為引用的內(nèi)容: h1 { background: url(/widget-image.gif) no-repeat; } h1 span { position: absolute; left:-2000px; } |
現(xiàn)在你既用上了漂亮的圖片又很好的隱藏了真實(shí)文本——借助css,文本被定位于屏幕左側(cè)-2000像素處。
6、css盒模型hack的另一選擇
css盒模型hack被用來解決IE6之前的瀏覽器顯示問題,IE6.0之前的版本會(huì)把某元素的邊框值和填充值包含在寬度之內(nèi)(而不是加在寬度值上)。例如,你可能會(huì)使用以下css來指定某個(gè)容器的尺寸:
以下為引用的內(nèi)容: #box { width: 100px; border: 5px; padding: 20px; } |
然后在html中應(yīng)用:
<div id="box">...</div>
盒的總寬度在幾乎所有瀏覽器中為150像素(100像素寬度 兩條5像素的邊框 兩個(gè)20像素的填充),唯獨(dú)在IE6之前版本的瀏覽器中仍然為100像
素(邊框值和填充值包含在寬度值中),盒模型的hack正是為了解決這一問題,但是也會(huì)帶來麻煩。更簡(jiǎn)單的辦法如下:
以下為引用的內(nèi)容: css: #box { width: 150px; } #box div { border: 5px; padding: 20px; } html: |
這樣一來在任何瀏覽器中盒的總寬度都將是150像素。
7、將塊元素居中
假設(shè)你的網(wǎng)站使用了固定寬度的布局,所有的內(nèi)容置于屏幕中心,可以使用
以下的css:
以下為引用的內(nèi)容: #content { width: 700px; margin: 0 auto; } |
你可以把html的body之內(nèi)任何項(xiàng)目置于中,該項(xiàng)目將自動(dòng)獲得相等的左右邊界值從而保證了居中顯示。不過,這在IE6之前版本的瀏覽器中仍然有問題,將不會(huì)居中,因此必須修改如下:
以下為引用的內(nèi)容: body { text-align: center; } #content { text-align: left; width: 700px; margin: 0 auto; } |
對(duì)body的設(shè)定將導(dǎo)致主體內(nèi)容居中,但是連所有的文字也居中了,這恐怕不是你想要的效果,為此#content 的div還要指定一個(gè)值:text-align: left
8、使用css實(shí)現(xiàn)垂直居中
垂直居中對(duì)表格來說是小菜一碟,只需指定單元格為vertical-align: middle即可,但這在css布局中不管用。假設(shè)你將一個(gè)導(dǎo)航菜單的高度設(shè)為2em,然后在css中指定垂直對(duì)齊的規(guī)則,文字還是會(huì)被排到盒的頂部,根本沒有什么區(qū)別。
要解決這一問題,只需將盒的行高設(shè)為與盒的高度相同即可,以這個(gè)例子來說,盒高2em,那么只需在css中再加入一條:line-height: 2em 就可實(shí)現(xiàn)垂直居中了!
9、容器內(nèi)的css定位
css的最大優(yōu)點(diǎn)之一就是可以將對(duì)象定位在文檔的任何位置,同樣的也可以將對(duì)象在某容器內(nèi)進(jìn)行定位。只需要為該容器添加一條css規(guī)則:
以下為引用的內(nèi)容: #container { position: relative; } |
則容器內(nèi)的任何元素的定位都是相對(duì)于該容器的。假定你使用以下html結(jié)構(gòu):
假如想將navigation定位在容器內(nèi)離左邊界30像素,離頂部5像素,可以使用以下css語(yǔ)句:
以下為引用的內(nèi)容: #navigation { position: absolute; left: 30px; top: 5px; } |
10、延伸至屏幕底部的背景色
css的缺點(diǎn)之一是缺乏垂直方向的控制,從而導(dǎo)致了一個(gè)表格布局不會(huì)碰到的問題。假設(shè)你在頁(yè)面的左側(cè)設(shè)定了一列用于放置網(wǎng)站的導(dǎo)航。頁(yè)面為白色背景,但你希望導(dǎo)航所在的列為藍(lán)色背景,使用以下css即可:
以下為引用的內(nèi)容: #navigation { background: blue; width: 150px; } |
問題在于導(dǎo)航項(xiàng)不會(huì)一直延伸到頁(yè)面的底部,自然它的背景色也不會(huì)延伸到底部。于是左列的藍(lán)色背景在頁(yè)面上被半路截?cái)啵速M(fèi)了你的一番設(shè)計(jì)。怎么辦呢?很不幸我們現(xiàn)在只能用欺騙的辦法,即將body的背景指定為與左列同顏色同寬度的圖片,css如下:
以下為引用的內(nèi)容: body { background: url(/blue-image.gif) 0 0 repeat-y; } |
背景圖應(yīng)為寬150像素的藍(lán)色圖片。這一辦法的缺點(diǎn)是沒法使用em來指定左列的寬度,當(dāng)用戶改變文字的大小導(dǎo)致內(nèi)容的寬度擴(kuò)張時(shí),背景色的寬度不會(huì)隨之改變。
到寫這篇文章為止這是對(duì)這類問題的唯一解決辦法,因此你只能為左列使用像素值來獲得能夠自動(dòng)延伸的不同的背景色。
- Web標(biāo)準(zhǔn):需要正確的使用H1~ H6標(biāo)簽
- 五個(gè)WEB標(biāo)準(zhǔn)中必須注意的地方
- 做到結(jié)構(gòu)(XHTML),表現(xiàn)(CSS),行為(JavaScript)的分離
- CSS標(biāo)準(zhǔn):HTML標(biāo)簽元素的關(guān)閉
- Web標(biāo)準(zhǔn)之路 勿使用W3C廢棄的元素
- CSS布局 聲明文檔類型描述(DTD)
- DIV CSS\讓搜索引擎蜘蛛不再累
- 用XHTML+CSS創(chuàng)建基于Web標(biāo)準(zhǔn)的網(wǎng)頁(yè)
- XHTML+CSS創(chuàng)建基于Web標(biāo)準(zhǔn)的網(wǎng)站
- DIV+CSS對(duì)SEO的幫助
- 淺析什么是Web標(biāo)準(zhǔn) 及其前景
- CSSer新手寄語(yǔ):開始標(biāo)準(zhǔn)之路
Web標(biāo)準(zhǔn)教程Rss訂閱Div+Css教程搜索
Web標(biāo)準(zhǔn)教程推薦
- CSS禪意花園讀后感
- CSSEditer適合編輯CSS的幾款編輯器簡(jiǎn)介
- CSS中級(jí)教程 組合與嵌套
- CSS網(wǎng)頁(yè)標(biāo)準(zhǔn)制作關(guān)于網(wǎng)頁(yè)表單語(yǔ)義結(jié)構(gòu)實(shí)例
- WEB2.0標(biāo)準(zhǔn)教程:第六天 XHTML代碼規(guī)范
- 學(xué)習(xí)CSS了解單位em和px的區(qū)別
- CSS調(diào)試工具M(jìn)ultipleIE-IE5IE6IE7多版本共存
- ie7空格的間距要比ie6/firefox/opera的都要大
- WEB2.0標(biāo)準(zhǔn)教程:第十一天 不用表格的菜單
- 玩轉(zhuǎn)Dreamweaver速記CSS屬性
猜你也喜歡看這些
- CSSHack技術(shù)速查對(duì)照
- 如何兼容IE7和IE8
- JS的IE和FF兼容性問題的匯總小結(jié)
- CSS初學(xué)者技巧:談CSS的標(biāo)準(zhǔn)和最佳示例
- img標(biāo)簽下多余空白BUG解決方法
- CSSHack代碼范例:兼容IE5.0、IE5.5、IE6.0、IE7.0、FF1.5、FF2.0
- IE、Nascape環(huán)境中CSS的顯示差別
- Web頁(yè)面優(yōu)化減小頁(yè)面對(duì)內(nèi)存及CPU的占用
- XHTML1.0、XHTML Basic、XHTML1.1及XHTML2.0區(qū)別
- CSS實(shí)例:list-style-type在IE與FF中奇怪的現(xiàn)象解析
- 相關(guān)鏈接:
- 教程說明:
Web標(biāo)準(zhǔn)教程-CSS樣式表設(shè)計(jì)的十條技巧。