日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Div CSS布局入門教程

 senjanwn 2007-04-29
 

 

 
 
 

Div+CSS布局入門教程

2007-01-14 閱讀: 425 出處: 作者: 編輯: 
 
一、頁面布局與規(guī)劃

  好久沒有認(rèn)真寫點(diǎn)東西了,想起最近這些時(shí)間經(jīng)常有朋友問到我有關(guān)于DIV+CSS布局的問題,其實(shí)歸根結(jié)底還是由于沒有入門造成的。那么接下來的這篇文章就帶領(lǐng)大家入門吧...

  在網(wǎng)頁制作中,有許多的術(shù)語,例如:CSS、HTML、DHTML、XHTML等等。在下面的文章中我們將會(huì)用到一些有關(guān)于HTML的基本知識(shí),而在你學(xué)習(xí)這篇入門教程之前,請(qǐng)確定你已經(jīng)具有了一定的HTML基礎(chǔ)。下面我們就開始一步一步使用DIV+CSS進(jìn)行網(wǎng)頁布局設(shè)計(jì)吧。

  所有的設(shè)計(jì)第一步就是構(gòu)思,構(gòu)思好了,一般來說還需要用PhotoShop或FireWorks(以下簡稱PS或FW)等圖片處理軟件將需要制作的界面布局簡單的構(gòu)畫出來,以下是我構(gòu)思好的界面布局圖。



  下面,我們需要根據(jù)構(gòu)思圖來規(guī)劃一下頁面的布局,仔細(xì)分析一下該圖,我們不難發(fā)現(xiàn),圖片大致分為以下幾個(gè)部分:
  1、頂部部分,其中又包括了LOGO、MENU和一幅Banner圖片;
  2、內(nèi)容部分又可分為側(cè)邊欄、主體內(nèi)容;
  3、底部,包括一些版權(quán)信息。
  有了以上的分析,我們就可以很容易的布局了,我們?cè)O(shè)計(jì)層如下圖:


  根據(jù)上圖,我再畫了一個(gè)實(shí)際的頁面布局圖,說明一下層的嵌套關(guān)系,這樣理解起來就會(huì)更簡單了。


  DIV結(jié)構(gòu)如下:
  │body {} /*這是一個(gè)HTML元素,具體我就不說明了*/
  └#Container {} /*頁面層容器*/
     ├#Header {} /*頁面頭部*/
     ├#PageBody {} /*頁面主體*/
     │ ├#Sidebar {} /*側(cè)邊欄*/
     │ └#MainBody {} /*主體內(nèi)容*/
     └#Footer {} /*頁面底部*/
  至此,頁面布局與規(guī)劃已經(jīng)完成,接下來我們要做的就是開始書寫HTML代碼和CSS。
二、寫入整體層結(jié)構(gòu)與CSS

  接下來我們?cè)谧烂嫘陆ㄒ粋€(gè)文件夾,命名為“DIV+CSS布局練習(xí)”,在文件夾下新建兩個(gè)空的記事本文檔,輸入以下內(nèi)容:
 程序代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www./1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標(biāo)題文檔</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>

<body>
</body>
</html>

  這是XHTML的基本結(jié)構(gòu),將其命名為index.htm,另一個(gè)記事本文檔則命名為css.css。

  下面,我們?cè)?lt;body></body>標(biāo)簽對(duì)中寫入DIV的基本結(jié)構(gòu),代碼如下:
 程序代碼

<div id="container"><!--頁面層容器-->
  <div id="Header"><!--頁面頭部-->
  </div>
  <div id="PageBody"><!--頁面主體-->
    <div id="Sidebar"><!--側(cè)邊欄-->
    </div>
    <div id="MainBody"><!--主體內(nèi)容-->
    </div>
  </div>
  <div id="Footer"><!--頁面底部-->
  </div>
</div>

  為了使以后閱讀代碼更簡易,我們應(yīng)該添加相關(guān)注釋,接下來打開css.css文件,寫入CSS信息,代碼如下:

 程序代碼

/*基本信息*/
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}

/*頁面層容器*/
#container {width:100%}

/*頁面頭部*/
#Header {width:800px;margin:0 auto;height:100px;background:#FFCC99}

/*頁面主體*/
#PageBody {width:800px;margin:0 auto;height:400px;background:#CCFF00}

/*頁面底部*/
#Footer {width:800px;margin:0 auto;height:50px;background:#00FFFF}

  把以上文件保存,用瀏覽器打開,這時(shí)我們已經(jīng)可以看到基礎(chǔ)結(jié)構(gòu)了,這個(gè)就是頁面的框架了。
  關(guān)于以上CSS的說明(詳細(xì)請(qǐng)參考CSS2.0中文手冊(cè),網(wǎng)上有下載):

  1、請(qǐng)養(yǎng)成良好的注釋習(xí)慣,這是非常重要的;

  2、body是一個(gè)HTML元素,頁面中所有的內(nèi)容都應(yīng)該寫在這標(biāo)簽對(duì)之內(nèi),我就不多說了;

  3、講解一些常用的CSS代碼的含義:

    font:12px Tahoma;
    這里使用了縮寫,完整的代碼應(yīng)該是:font-size:12px;font-family:Tahoma;說明字體為12像素大小,字體為Tahoma格式;

    margin:0px;
    也使用了縮寫,完整的應(yīng)該是:

    margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px
    或
    margin:0px 0px 0px 0px

    順序是 上 / 右 / 下 / 左,你也可以書寫為margin:0(縮寫);
    以上樣式說明body部分對(duì)上右下左邊距為0像素,如果使用auto則是自動(dòng)調(diào)整邊距,
    另外還有以下幾種寫法:
    margin:0px auto;
    說明上下邊距為0px,左右為自動(dòng)調(diào)整;
    我們以后將使用到的padding屬性和margin有許多相似之處,他們的參數(shù)是一樣的,
    只不過各自表示的含義不相同,margin是外部距離,而padding則是內(nèi)部距離。

    text-align:center
    文字對(duì)齊方式,可以設(shè)置為左、右、中,這里我將它設(shè)置為居中對(duì)齊。

    background:#FFF
    設(shè)置背景色為白色,這里顏色使用了縮寫,完整的應(yīng)該是background:#FFFFFF。
    background可以用來給指定的層填充背景色、背景圖片,以后我們將用到如下格式:
    background:#ccc url(‘bg.gif‘) top left no-repeat;
    表示:使用#CCC(灰度色)填充整個(gè)層,使用bg.gif做為背景圖片,
    top left
    表示圖片位于當(dāng)前層的左上端,no-repeat表示僅顯示圖片大小而不填充滿整個(gè)層。
    top/right/left/bottom/center
    用于定位背景圖片,分別表示 上 / 右 / 下 / 左 / 中;還可以使用
    background:url(‘bg.gif‘) 20px 100px;
    表示X座標(biāo)為20像素,Y座標(biāo)為100像素的精確定位;
    repeat/no-repeat/repeat-x/repeat-y
    分別表示 填充滿整個(gè)層 / 不填充 / 沿X軸填充 / 沿Y軸填充。

    height / width / color
    分別表示高度(px)、寬度(px)、字體顏色(HTML色系表)。

  4、如何使頁面居中?
    大家將代碼保存后可以看到,整個(gè)頁面是居中顯示的,那么究竟是什么原因使得頁面居中顯示呢?
    是因?yàn)槲覀冊(cè)?container中使用了以下屬性:
    margin:0 auto;
    按照前面的說明,可以知道,表示上下邊距為0,左右為自動(dòng),因此該層就會(huì)自動(dòng)居中了。
    如果要讓頁面居左,則取消掉auto值就可以了,因?yàn)槟J(rèn)就是居左顯示的。
    通過margin:auto我們就可以輕易地使層自動(dòng)居中了。

  5、這里我只介紹這些常用的CSS屬性了,其他的請(qǐng)參看CSS2.0中文手冊(cè)。
三、頁面頂部制作(1)

  當(dāng)我們寫好了頁面大致的DIV結(jié)構(gòu)后,我們就可以開始細(xì)致地對(duì)每一個(gè)部分進(jìn)行制作了。

  在上一章中我們寫入了一些樣式,那些樣式是為了預(yù)覽結(jié)構(gòu)而寫入的,我們把css.css中的樣式全部清除掉,重新寫入以下樣式代碼:
 程序代碼
/*基本信息*/
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
a:link,a:visited {font-size:12px;text-decoration:none;}
a:hover{}

/*頁面層容器*/
#container {width:800px;margin:10px auto}

  樣式說明:

  a:link,a:visited {font-size:12px;text-decoration:none;}
  a:hover {}


  這兩項(xiàng)分別是控制頁面中超鏈接的樣式,具體我就不說明了,請(qǐng)大家參閱手冊(cè)。

  #container {width:800px;margin:10px auto}

  指定整個(gè)頁面的顯示區(qū)域。
  width:800px指定寬度為800像素,這里根據(jù)實(shí)際所需設(shè)定。
  margin:10px auto,則是頁面上、下邊距為10個(gè)像素,并且居中顯示。
  上一章中我們講過,對(duì)層的margin屬性的左右邊距設(shè)置為auto可以讓層居中顯示。

  接下來,我們開始制作TOP部分,TOP部分包括了LOGO、菜單Banner,首先我們要做的就是對(duì)設(shè)計(jì)好的圖片進(jìn)行切片,以下是在FW下完成的切片:

  我將TOP部分切片為兩部分,第一部分包括了LOGO和一條橫線。由于LOGO圖片并沒有太多的顏色,這里我于是將這一部分保存為GIF格式,調(diào)色板選擇為精確,選擇Alpha透明度,色版為白色(此處顏色應(yīng)與背景色相同),導(dǎo)出為logo.gif,圖像寬度為800px。

  到這里,有的朋友就說了,* 為什么要使用GIF格式?使用JPEG不是更好嗎?
  因?yàn)镚IF格式的圖片文件更小,這樣能使頁面載入的速度更快,當(dāng)然使用此格式之前必須確定圖片并沒有使用太多的顏色,當(dāng)我們使用了GIF格式時(shí),從肉眼上并不能看出圖片有什么太大的變化,因此這是可行的。

  * 接下來的Banner部分還能使用GIF格式嗎?
  答案是不能,因?yàn)锽anner部分是一個(gè)細(xì)致的圖片,如果使用GIF格式顏色會(huì)有太大的損失,所以必須使用JPEG格式,將文件導(dǎo)出為banner.jpg。

  * 合理的切片是非常之重要的,因?yàn)榍衅姆椒ㄕ_與否決定了CSS書寫的簡易程度以及頁面載入速度。

  切好片后,我們還需要對(duì)TOP部分進(jìn)行分析并將DIV結(jié)構(gòu)寫入Header中代碼如下:
 程序代碼
  <div id="menu">
   <ul>
    <li><a href="#">首頁</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">博客</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">設(shè)計(jì)</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">相冊(cè)</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">論壇</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">關(guān)于</a></li>
   </ul>
  </div>
  <div id="banner">
  </div>

  為什么要這么寫呢,因?yàn)閷?duì)菜單使用列表<li>形式,可以在以后方便對(duì)菜單定制樣式。

  而為什么要添加以下代碼呢?
  <li class="menuDiv"></li>
  插入這一段代碼是可以方便地對(duì)菜單選項(xiàng)之間插入一些分隔樣式,例如預(yù)覽圖中的豎線分隔。

  然后我們?cè)赾ss.css中再寫入以下樣式:
 程序代碼
/*頁面頭部*/
#header {background:url(logo.gif) no-repeat}


  樣式說明:
  #header {background:url(logo.gif) no-repeat}
  給頁面頭部分加入一個(gè)背景圖片LOGO,并且不作填充。

  這里,我們沒有指定header層的高度,為什么不指定呢?

  因?yàn)閔eader層中還有菜單和banner項(xiàng),所以層的高度暫時(shí)是未知的,而層的屬性又可以讓層根據(jù)內(nèi)容自動(dòng)設(shè)定調(diào)整,因此我們并不需要指定高度。


三、頁面頂部制作(2)----使用列表<li>制作菜單

  開始此節(jié)的學(xué)習(xí)前,請(qǐng)確認(rèn)你已經(jīng)參照之前的幾節(jié)內(nèi)容寫入了DIV、CSS到index.htm和css.css文件中。
  這一節(jié)我將告訴大家如何用列表<li>來制作菜單。

 程序代碼
        <div id="menu">
          <ul>
            <li><a href="#">首頁</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">博客</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">設(shè)計(jì)</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">相冊(cè)</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">論壇</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">關(guān)于</a></li>
          </ul>
        </div>


  以上是這部分的結(jié)構(gòu),有關(guān)于<ul></ul>、<li></li>這兩個(gè)HTML元素大家自己去參考相關(guān)的內(nèi)容吧,它們最主要的作用就是在HTML中以列表的形式來顯示一些信息。

  還有一點(diǎn)需要大家一定要分清楚的,當(dāng)在HTML中定義為id="divID"時(shí),在CSS對(duì)應(yīng)的設(shè)置語法則是#divID{} ,如果在HTML中定義為class="divID"時(shí),則在CSS中對(duì)應(yīng)的設(shè)置語法是.divID。
  如果id="divID"這個(gè)層中包括了一個(gè)<img></img>,則這個(gè)img在CSS中對(duì)應(yīng)的設(shè)置語法應(yīng)該是#divID img {},同樣,如果是包含在class="divID"這個(gè)層中時(shí),則設(shè)置語法應(yīng)該是.divID img {},這一點(diǎn)希望大家要分清楚了。
  另外,HTML中的一切元素都是可以定義的,例如table、tr、td、th、form、img、input...等等,如果你要在CSS中設(shè)置它們,則直接寫入元素的名稱加上一對(duì)大括號(hào){}就可以了。所有的CSS代碼都應(yīng)該寫在大括號(hào){}中。

  按照上面的介紹,我們先在css.css中寫入以下代碼:

 程序代碼
#menu ul {list-style:none;margin:0px;}
#menu ul li {float:left;}


  解釋一下:
  #menu ul {list-style:none;margin:0px;}
  list-style:none,這一句是取消列表前點(diǎn),因?yàn)槲覀儾恍枰@些點(diǎn)。
  margin:0px,這一句是刪除UL的縮進(jìn),這樣做可以使所有的列表內(nèi)容都不縮進(jìn)。

  #menu ul li {float:left;}
  這里的 float:left 的左右是讓內(nèi)容都在同一行顯示,因此使用了浮動(dòng)屬性(float)。

  到這一步,建議大家先保存預(yù)覽一下效果,我們?cè)偬砑酉旅娴膬?nèi)容,效果如下:



  這時(shí),列表內(nèi)容是排列在一行,我們?cè)?menu ul li {}再加入代碼margin:0 10px

 程序代碼
#menu ul {list-style:none;margin:0px;}
#menu ul li {float:left;margin:0 10px}


  margin:0 10px的作用就是讓列表內(nèi)容之間產(chǎn)生一個(gè)20像素的距離(左:10px,右:10px),預(yù)覽的效果如下:



  現(xiàn)在,雛形已經(jīng)出來了,我們?cè)賮砉潭ú藛蔚奈恢?,把代碼改成如下:

 程序代碼
#menu {padding:20px 20px 0 0}
/*利用padding:20px 20px 0 0來固定菜單位置*/
#menu ul {float:right;list-style:none;margin:0px;}
/*添加了float:right使得菜單位于頁面右側(cè)*/
#menu ul li {float:left;margin:0 10px}



  這時(shí),位置已經(jīng)確定了,可是構(gòu)思圖中,菜單選項(xiàng)之間還有一條豎線,怎么辦呢?
  別忘了,我們?cè)缇鸵呀?jīng)留好了一個(gè)空的<li class="menuDiv"></li>,要想加入豎線就使用它了。
  按照上面說的方法,我們?cè)偬砑右韵麓a:

 程序代碼
.menuDiv {width:1px;height:28px;background:#999}

,保存預(yù)覽一下,豎線是否已經(jīng)出來了?關(guān)于這段代碼就不多講了,應(yīng)該是很容易理解的。



  不過,菜單選項(xiàng)的文字卻在頂部,我們?cè)傩薷某梢韵麓a:

 程序代碼
#menu ul li {float:left;margin:0 10px;display:block;line-height:28px}


  關(guān)于display:block;line-height:28px大家可以去參閱一下手冊(cè),我就不多講了。

  效果基本上已經(jīng)實(shí)現(xiàn)了,剩下的就是修改菜單的超鏈接樣式,在css.css中添加以下代碼:

 程序代碼
#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
#menu ul li a:hover{}


  這個(gè)也不多說了,沒什么好說的了,最后的效果如下:



  這一節(jié)到這里就完畢了,順便把素材提供給大家:
  構(gòu)思圖: 點(diǎn)擊下載
  HTML和CSS源文件: 點(diǎn)擊下載

四、頁面制作(1)----用好border和clear

  由于找工作找房子的原因,隔了這么久才能開始寫教程,心里感覺很對(duì)不起一直在關(guān)注本站的朋友,今天是找到房子的第二天,于是趕快繼續(xù)寫教程。

  這一節(jié)里面,主要就是想告訴大家如何使用好borderclear這兩個(gè)屬性。

  首先,如果你曾用過table制作網(wǎng)頁,你就應(yīng)該知道,如果要在表格中繪制一條虛線該如何做,那需要制作一個(gè)很小的圖片來填充,其實(shí)我們還有更簡單的辦法,只要在<td></td>中加入這么一段就可以了,你可以試試:
  <div style="border-bottom:1px dashed #ccc"></div>

  大家可以再次參考手冊(cè),然后你就能明白dashed、solid、dotted...等的作用,利用它們你可以制作出許多效果來,實(shí)線、虛線、雙線、陰影線等等。

 程序代碼
<div id="banner"></div>


  以上代碼便可以實(shí)現(xiàn)設(shè)計(jì)草圖中的banner,在css.css中加入以下樣式:

 程序代碼
#banner {
    background:url(banner.jpg) 0 30px no-repeat; /*加入背景圖片*/
    width:730px; /*設(shè)定層的寬度*/
    margin:auto; /*層居中*/
    height:240px; /*設(shè)定高度*/
    border-bottom:5px solid #EFEFEF; /*畫一條淺灰色實(shí)線*/
    clear:both /*清除浮動(dòng)*/
}


  通過border很容易就繪制出一條實(shí)線了,并且減少了圖片下載所占用的網(wǎng)絡(luò)資源,使得頁面載入速度變得更快。

  另一個(gè)要說明的就是clear:both,表示清除左、右所有的浮動(dòng),在接下來的布局中我們還會(huì)用這個(gè)屬性:clear:left/right。在這里添加clear:both是由于之前的ul、li元素設(shè)置了浮動(dòng),如果不清除則會(huì)影響banner層位置的設(shè)定。

 程序代碼
<div id="pagebody"><!--頁面主體-->
    <div id="sidebar"><!--側(cè)邊欄-->
    </div>
    <div id="mainbody"><!--主體內(nèi)容-->
    </div>
</div>


  以上是頁面主體部分,我們?cè)赾ss.css中添加以下樣式:

 程序代碼
#pagebody {
    width:730px; /*設(shè)定寬度*/
    margin:8px auto; /*居中*/
}
#sidebar {
    width:160px; /*設(shè)定寬度*/
    text-align:left; /*文字左對(duì)齊*/
    float:left; /*浮動(dòng)居左*/
    clear:left; /*不允許左側(cè)存在浮動(dòng)*/
    overflow:hidden; /*超出寬度部分隱藏*/
}
#mainbody {
    width:570px;
    text-align:left;
    float:right; /*浮動(dòng)居右*/
    clear:right; /*不允許右側(cè)存在浮動(dòng)*/
    overflow:hidden
}


  為了可以查看到效果,建議在#sidebar和#mainbody中加入以下代碼,預(yù)覽完成后可以刪除這段代碼:

 程序代碼
border:1px solid #E00;
height:200px


  保存預(yù)覽效果,可以發(fā)現(xiàn)這兩個(gè)層完美的浮動(dòng),在達(dá)到了我們布局的要求,而兩個(gè)層的實(shí)際寬度應(yīng)該160+2(border)+570+2=734px,已經(jīng)超出了父層的寬度,由于clear的原因,這兩個(gè)層才不會(huì)出現(xiàn)錯(cuò)位的情況,這樣可以使我們布局的頁面不會(huì)因?yàn)閮?nèi)容太長(例如圖片)而導(dǎo)致錯(cuò)位。


  而之后添加的overflow:hidden則可以使內(nèi)容太長(例如圖片)的部份自動(dòng)被隱藏。通常我們會(huì)看到一些網(wǎng)頁在載入時(shí),由于圖片太大,導(dǎo)致布局被撐開,直到頁面下載完成才恢復(fù)正常,通過添加overflow:hidden就可以解決這個(gè)問題。

  CSS中每一個(gè)屬性運(yùn)用得當(dāng),就可以解決許多問題,或許它們與你在布局的頁并沒有太大的關(guān)系,但是你必須知道這些屬性的作用,在遇到難題的時(shí)候,可以嘗試使用這些屬性去解決問題。

  源文件可以再下一節(jié)中再次下載。
最近看過許多網(wǎng)友制作的SKIN的CSS文件,發(fā)現(xiàn)其中有著許多冗余的代碼。下面我來跟大家介紹一下,如何清除這些冗余的代碼,讓你的CSS文件更加簡潔。

  一、margin、padding屬性
  參照相關(guān)資料我們可以知道,margin和padding代表的意思分別是外部邊距和內(nèi)部填充距離,在許多網(wǎng)友的CSS中,關(guān)于這兩個(gè)屬性的冗余代碼是出現(xiàn)得最多的。比如:margin:0px,大家可以查看一下自己的CSS文件中,是否許多的margin:0px,其中有的是不需要的,你可以嘗試刪除它,當(dāng)然也并不是所有的margin:0px都沒有用,相同,padding:0px也一樣。

  另外,margin和padding中各項(xiàng)屬性的順序是:上右下左,你只要記住是順時(shí)針方向就好了。我們?cè)倏纯催@兩段代碼:
margin:0px 0px 0px 10px;
margin-left:10px;
其實(shí)他們的作用是一樣的,下面的則是一種縮寫,使用縮寫我們可以減少CSS代碼,并使閱讀起來更為方便。(padding也相同。)

  二、!important;屬性
  !important是CSS1就定義的語法,作用是提高指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán)。IE是不支持這個(gè)語法的,而其他的瀏覽器都支持,通過這一點(diǎn),我們可以得知,設(shè)置了優(yōu)先權(quán)的代碼是不會(huì)被IE執(zhí)行的。所以我們可以important的后面添加CSS樣式,使其可以區(qū)別于IE和FireFox等瀏覽器。

  上次在看Miles的CSS代碼時(shí),我看到了這樣一句:
height:50px !important;height:50px;
  這里就是多余的了,我們可以這樣寫:height:50px就夠了,這個(gè)錯(cuò)誤在我剛開始制作CSS時(shí)也曾出現(xiàn)過。

  三、text-align、font樣式
  這兩個(gè)樣式的作用我就不說了,但是這兩個(gè)樣式在許多網(wǎng)友的CSS中也存在許多冗余。下面我來舉例說明一下,層的定義如下:
<div id="main">
    <div id="body1">
        <div id="content1">
        </div>
    </div>
    <div id="body2">
    </div>
<div>

CSS文件如下(錯(cuò)誤示例):
#main{width:500px;text-algin:left;font-size:12px;color:#000000;}
#body1{width:500px;text-algin:center;font-size:12px;color:#FF0000;}
#content{text-algin:left;font-size:12px;color:#000000;}
#body2{text-algin:left;font-size:12px;color:#000000;}

  大家可以從上面的代碼中輕易地看出,有許多的冗余代碼,現(xiàn)在我們來書寫正確的代碼:
#main{width:500px;text-algin:left;font-size:12px;color:#000000;}
#body1{text-algin:center;color:#FF0000;}
#content{width:300px;text-algin:left;color:#000000;}
#body2{}

  以上就是正確的代碼,由于大家在制作SKIN時(shí),對(duì)PJBLOG的DIV結(jié)構(gòu)沒搞清楚,才會(huì)出現(xiàn)這種錯(cuò)誤。

  四、display:none的使用
  display:none的作用就是使被定義的層不顯示。我們?cè)賮砜纯催@段代碼:
#blogTitle{font-size:0px;margin:10px 3px 3px 40px;height:20px;color:#FFC1E6;display:none}

  大家有沒有覺得這有些多余呢,是的,既然設(shè)置了不顯示,為何還要保留那些不必要的樣式呢?出現(xiàn)這種情況我就知道,這個(gè)SKIN是改自某人的。

  五、還是margin和padding
  我還是通過例子來給大家說明,層的定義同上,以下是CSS的定義(錯(cuò)誤示例):
#main{margin:5px 0px 5px 0px;}
#body1{margin:12px 0px 10px 0px;}
#content{margin:8px 0px 2px 0px;}
#body2{margin:10px 0px 15px 0px;}

  現(xiàn)在我們?cè)賮頃鴮懻_的樣式:
#main{}
#body1{margin-top:17px ;}
#content{margin:8px 0px 2px 0px;}
#body2{margin:20px 0px ;}

  這里需要大家制作一下示例才能了解,首先#main{margin:5px 0px 5px 0px;}是沒有必要的,他無非定義的就是整個(gè)頁面的上、下外邊距。(在一定場合下卻需要這樣書寫)我們同樣可以通過定義#body1的上邊距和#body2的下邊距來設(shè)置,所以才有了#body1{margin-top:17px ;}#body2{margin:20px 0px ;}(這里定義的是#body2的上下邊距為20px,左右邊距為0px,也是縮寫的一種方式。)

  同樣的道理,于是我們可以省略了#body1的下邊距,在#content層在定義上邊距,另外大家還需要先弄清楚層的嵌套關(guān)系,否則就會(huì)出錯(cuò)。

  好了,寫到這里我也該去睡了,以上就是這些時(shí)間查看大家的CSS文件獲得的經(jīng)驗(yàn),希望對(duì)大家書寫CSS的時(shí)候有所幫助,制作出來的SKIN更加簡潔、明了。

一、頁面布局與規(guī)劃

  好久沒有認(rèn)真寫點(diǎn)東西了,想起最近這些時(shí)間經(jīng)常有朋友問到我有關(guān)于DIV+CSS布局的問題,其實(shí)歸根結(jié)底還是由于沒有入門造成的。那么接下來的這篇文章就帶領(lǐng)大家入門吧...

  在網(wǎng)頁制作中,有許多的術(shù)語,例如:CSS、HTML、DHTML、XHTML等等。在下面的文章中我們將會(huì)用到一些有關(guān)于HTML的基本知識(shí),而在你學(xué)習(xí)這篇入門教程之前,請(qǐng)確定你已經(jīng)具有了一定的HTML基礎(chǔ)。下面我們就開始一步一步使用DIV+CSS進(jìn)行網(wǎng)頁布局設(shè)計(jì)吧。
  所有的設(shè)計(jì)第一步就是構(gòu)思,構(gòu)思好了,一般來說還需要用PhotoShop或FireWorks(以下簡稱PS或FW)等圖片處理軟件將需要制作的界面布局簡單的構(gòu)畫出來,以下是我構(gòu)思好的界面布局圖。



  下面,我們需要根據(jù)構(gòu)思圖來規(guī)劃一下頁面的布局,仔細(xì)分析一下該圖,我們不難發(fā)現(xiàn),圖片大致分為以下幾個(gè)部分:
  1、頂部部分,其中又包括了LOGO、MENU和一幅Banner圖片;
  2、內(nèi)容部分又可分為側(cè)邊欄、主體內(nèi)容;
  3、底部,包括一些版權(quán)信息。
  有了以上的分析,我們就可以很容易的布局了,我們?cè)O(shè)計(jì)層如下圖:


  根據(jù)上圖,我再畫了一個(gè)實(shí)際的頁面布局圖,說明一下層的嵌套關(guān)系,這樣理解起來就會(huì)更簡單了。


  DIV結(jié)構(gòu)如下:
  │body {} /*這是一個(gè)HTML元素,具體我就不說明了*/
  └#Container {} /*頁面層容器*/
     ├#Header {} /*頁面頭部*/
     ├#PageBody {} /*頁面主體*/
     │ ├#Sidebar {} /*側(cè)邊欄*/
     │ └#MainBody {} /*主體內(nèi)容*/
     └#Footer {} /*頁面底部*/
  至此,頁面布局與規(guī)劃已經(jīng)完成,接下來我們要做的就是開始書寫HTML代碼和CSS。
二、寫入整體層結(jié)構(gòu)與CSS

  接下來我們?cè)谧烂嫘陆ㄒ粋€(gè)文件夾,命名為“DIV+CSS布局練習(xí)”,在文件夾下新建兩個(gè)空的記事本文檔,輸入以下內(nèi)容:
 程序代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www./1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標(biāo)題文檔</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>

<body>
</body>
</html>

  這是XHTML的基本結(jié)構(gòu),將其命名為index.htm,另一個(gè)記事本文檔則命名為css.css。

  下面,我們?cè)?lt;body></body>標(biāo)簽對(duì)中寫入DIV的基本結(jié)構(gòu),代碼如下:
 程序代碼

<div id="container"><!--頁面層容器-->
  <div id="Header"><!--頁面頭部-->
  </div>
  <div id="PageBody"><!--頁面主體-->
    <div id="Sidebar"><!--側(cè)邊欄-->
    </div>
    <div id="MainBody"><!--主體內(nèi)容-->
    </div>
  </div>
  <div id="Footer"><!--頁面底部-->
  </div>
</div>

  為了使以后閱讀代碼更簡易,我們應(yīng)該添加相關(guān)注釋,接下來打開css.css文件,寫入CSS信息,代碼如下:

 程序代碼

/*基本信息*/
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}

/*頁面層容器*/
#container {width:100%}

/*頁面頭部*/
#Header {width:800px;margin:0 auto;height:100px;background:#FFCC99}

/*頁面主體*/
#PageBody {width:800px;margin:0 auto;height:400px;background:#CCFF00}

/*頁面底部*/
#Footer {width:800px;margin:0 auto;height:50px;background:#00FFFF}

  把以上文件保存,用瀏覽器打開,這時(shí)我們已經(jīng)可以看到基礎(chǔ)結(jié)構(gòu)了,這個(gè)就是頁面的框架了。
  關(guān)于以上CSS的說明(詳細(xì)請(qǐng)參考CSS2.0中文手冊(cè),網(wǎng)上有下載):

  1、請(qǐng)養(yǎng)成良好的注釋習(xí)慣,這是非常重要的;

  2、body是一個(gè)HTML元素,頁面中所有的內(nèi)容都應(yīng)該寫在這標(biāo)簽對(duì)之內(nèi),我就不多說了;

  3、講解一些常用的CSS代碼的含義:

    font:12px Tahoma;
    這里使用了縮寫,完整的代碼應(yīng)該是:font-size:12px;font-family:Tahoma;說明字體為12像素大小,字體為Tahoma格式;

    margin:0px;
    也使用了縮寫,完整的應(yīng)該是:

    margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px
    或
    margin:0px 0px 0px 0px

    順序是 上 / 右 / 下 / 左,你也可以書寫為margin:0(縮寫);
    以上樣式說明body部分對(duì)上右下左邊距為0像素,如果使用auto則是自動(dòng)調(diào)整邊距,
    另外還有以下幾種寫法:
    margin:0px auto;
    說明上下邊距為0px,左右為自動(dòng)調(diào)整;
    我們以后將使用到的padding屬性和margin有許多相似之處,他們的參數(shù)是一樣的,
    只不過各自表示的含義不相同,margin是外部距離,而padding則是內(nèi)部距離。

    text-align:center
    文字對(duì)齊方式,可以設(shè)置為左、右、中,這里我將它設(shè)置為居中對(duì)齊。

    background:#FFF
    設(shè)置背景色為白色,這里顏色使用了縮寫,完整的應(yīng)該是background:#FFFFFF。
    background可以用來給指定的層填充背景色、背景圖片,以后我們將用到如下格式:
    background:#ccc url(‘bg.gif‘) top left no-repeat;
    表示:使用#CCC(灰度色)填充整個(gè)層,使用bg.gif做為背景圖片,
    top left
    表示圖片位于當(dāng)前層的左上端,no-repeat表示僅顯示圖片大小而不填充滿整個(gè)層。
    top/right/left/bottom/center
    用于定位背景圖片,分別表示 上 / 右 / 下 / 左 / 中;還可以使用
    background:url(‘bg.gif‘) 20px 100px;
    表示X座標(biāo)為20像素,Y座標(biāo)為100像素的精確定位;
    repeat/no-repeat/repeat-x/repeat-y
    分別表示 填充滿整個(gè)層 / 不填充 / 沿X軸填充 / 沿Y軸填充。

    height / width / color
    分別表示高度(px)、寬度(px)、字體顏色(HTML色系表)。

  4、如何使頁面居中?
    大家將代碼保存后可以看到,整個(gè)頁面是居中顯示的,那么究竟是什么原因使得頁面居中顯示呢?
    是因?yàn)槲覀冊(cè)?container中使用了以下屬性:
    margin:0 auto;
    按照前面的說明,可以知道,表示上下邊距為0,左右為自動(dòng),因此該層就會(huì)自動(dòng)居中了。
    如果要讓頁面居左,則取消掉auto值就可以了,因?yàn)槟J(rèn)就是居左顯示的。
    通過margin:auto我們就可以輕易地使層自動(dòng)居中了。

  5、這里我只介紹這些常用的CSS屬性了,其他的請(qǐng)參看CSS2.0中文手冊(cè)。
三、頁面頂部制作(1)

  當(dāng)我們寫好了頁面大致的DIV結(jié)構(gòu)后,我們就可以開始細(xì)致地對(duì)每一個(gè)部分進(jìn)行制作了。

  在上一章中我們寫入了一些樣式,那些樣式是為了預(yù)覽結(jié)構(gòu)而寫入的,我們把css.css中的樣式全部清除掉,重新寫入以下樣式代碼:
 程序代碼
/*基本信息*/
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
a:link,a:visited {font-size:12px;text-decoration:none;}
a:hover{}

/*頁面層容器*/
#container {width:800px;margin:10px auto}

  樣式說明:

  a:link,a:visited {font-size:12px;text-decoration:none;}
  a:hover {}


  這兩項(xiàng)分別是控制頁面中超鏈接的樣式,具體我就不說明了,請(qǐng)大家參閱手冊(cè)。

  #container {width:800px;margin:10px auto}

  指定整個(gè)頁面的顯示區(qū)域。
  width:800px指定寬度為800像素,這里根據(jù)實(shí)際所需設(shè)定。
  margin:10px auto,則是頁面上、下邊距為10個(gè)像素,并且居中顯示。
  上一章中我們講過,對(duì)層的margin屬性的左右邊距設(shè)置為auto可以讓層居中顯示

  接下來,我們開始制作TOP部分,TOP部分包括了LOGO、菜單Banner,首先我們要做的就是對(duì)設(shè)計(jì)好的圖片進(jìn)行切片,以下是在FW下完成的切片:

  我將TOP部分切片為兩部分,第一部分包括了LOGO和一條橫線。由于LOGO圖片并沒有太多的顏色,這里我于是將這一部分保存為GIF格式,調(diào)色板選擇為精確,選擇Alpha透明度,色版為白色(此處顏色應(yīng)與背景色相同),導(dǎo)出為logo.gif,圖像寬度為800px。

  到這里,有的朋友就說了,* 為什么要使用GIF格式?使用JPEG不是更好嗎?
  因?yàn)镚IF格式的圖片文件更小,這樣能使頁面載入的速度更快,當(dāng)然使用此格式之前必須確定圖片并沒有使用太多的顏色,當(dāng)我們使用了GIF格式時(shí),從肉眼上并不能看出圖片有什么太大的變化,因此這是可行的。

  * 接下來的Banner部分還能使用GIF格式嗎?
  答案是不能,因?yàn)锽anner部分是一個(gè)細(xì)致的圖片,如果使用GIF格式顏色會(huì)有太大的損失,所以必須使用JPEG格式,將文件導(dǎo)出為banner.jpg。

  * 合理的切片是非常之重要的,因?yàn)榍衅姆椒ㄕ_與否決定了CSS書寫的簡易程度以及頁面載入速度。

  切好片后,我們還需要對(duì)TOP部分進(jìn)行分析并將DIV結(jié)構(gòu)寫入Header中代碼如下:
 程序代碼
  <div id="menu">
   <ul>
    <li><a href="#">首頁</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">博客</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">設(shè)計(jì)</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">相冊(cè)</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">論壇</a></li>
    <li class="menuDiv"></li>
    <li><a href="#">關(guān)于</a></li>
   </ul>
  </div>
  <div id="banner">
  </div>

  為什么要這么寫呢,因?yàn)閷?duì)菜單使用列表<li>形式,可以在以后方便對(duì)菜單定制樣式。

  而為什么要添加以下代碼呢?
  <li class="menuDiv"></li>
  插入這一段代碼是可以方便地對(duì)菜單選項(xiàng)之間插入一些分隔樣式,例如預(yù)覽圖中的豎線分隔。

  然后我們?cè)赾ss.css中再寫入以下樣式:
 程序代碼
/*頁面頭部*/
#header {background:url(logo.gif) no-repeat}


  樣式說明:
  #header {background:url(logo.gif) no-repeat}
  給頁面頭部分加入一個(gè)背景圖片LOGO,并且不作填充。

  這里,我們沒有指定header層的高度,為什么不指定呢?

  因?yàn)閔eader層中還有菜單和banner項(xiàng),所以層的高度暫時(shí)是未知的,而層的屬性又可以讓層根據(jù)內(nèi)容自動(dòng)設(shè)定調(diào)整,因此我們并不需要指定高度。


三、頁面頂部制作(2)----使用列表<li>制作菜單

  開始此節(jié)的學(xué)習(xí)前,請(qǐng)確認(rèn)你已經(jīng)參照之前的幾節(jié)內(nèi)容寫入了DIV、CSS到index.htm和css.css文件中。
  這一節(jié)我將告訴大家如何用列表<li>來制作菜單。

 程序代碼
        <div id="menu">
          <ul>
            <li><a href="#">首頁</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">博客</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">設(shè)計(jì)</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">相冊(cè)</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">論壇</a></li>
            <li class="menuDiv"></li>
            <li><a href="#">關(guān)于</a></li>
          </ul>
        </div>


  以上是這部分的結(jié)構(gòu),有關(guān)于<ul></ul>、<li></li>這兩個(gè)HTML元素大家自己去參考相關(guān)的內(nèi)容吧,它們最主要的作用就是在HTML中以列表的形式來顯示一些信息。

  還有一點(diǎn)需要大家一定要分清楚的,當(dāng)在HTML中定義為id="divID"時(shí),在CSS對(duì)應(yīng)的設(shè)置語法則是#divID{} ,如果在HTML中定義為class="divID"時(shí),則在CSS中對(duì)應(yīng)的設(shè)置語法是.divID。
  如果id="divID"這個(gè)層中包括了一個(gè)<img></img>,則這個(gè)img在CSS中對(duì)應(yīng)的設(shè)置語法應(yīng)該是#divID img {},同樣,如果是包含在class="divID"這個(gè)層中時(shí),則設(shè)置語法應(yīng)該是.divID img {},這一點(diǎn)希望大家要分清楚了。
  另外,HTML中的一切元素都是可以定義的,例如table、tr、td、th、form、img、input...等等,如果你要在CSS中設(shè)置它們,則直接寫入元素的名稱加上一對(duì)大括號(hào){}就可以了。所有的CSS代碼都應(yīng)該寫在大括號(hào){}中。

  按照上面的介紹,我們先在css.css中寫入以下代碼:

 程序代碼
#menu ul {list-style:none;margin:0px;}
#menu ul li {float:left;}


  解釋一下:
  #menu ul {list-style:none;margin:0px;}
  list-style:none,這一句是取消列表前點(diǎn),因?yàn)槲覀儾恍枰@些點(diǎn)。
  margin:0px,這一句是刪除UL的縮進(jìn),這樣做可以使所有的列表內(nèi)容都不縮進(jìn)。

  #menu ul li {float:left;}
  這里的 float:left 的左右是讓內(nèi)容都在同一行顯示,因此使用了浮動(dòng)屬性(float)。

  到這一步,建議大家先保存預(yù)覽一下效果,我們?cè)偬砑酉旅娴膬?nèi)容,效果如下:



  這時(shí),列表內(nèi)容是排列在一行,我們?cè)?menu ul li {}再加入代碼margin:0 10px

 程序代碼
#menu ul {list-style:none;margin:0px;}
#menu ul li {float:left;margin:0 10px}


  margin:0 10px的作用就是讓列表內(nèi)容之間產(chǎn)生一個(gè)20像素的距離(左:10px,右:10px),預(yù)覽的效果如下:



  現(xiàn)在,雛形已經(jīng)出來了,我們?cè)賮砉潭ú藛蔚奈恢?,把代碼改成如下:

 程序代碼
#menu {padding:20px 20px 0 0}
/*利用padding:20px 20px 0 0來固定菜單位置*/
#menu ul {float:right;list-style:none;margin:0px;}
/*添加了float:right使得菜單位于頁面右側(cè)*/
#menu ul li {float:left;margin:0 10px}



  這時(shí),位置已經(jīng)確定了,可是構(gòu)思圖中,菜單選項(xiàng)之間還有一條豎線,怎么辦呢?
  別忘了,我們?cè)缇鸵呀?jīng)留好了一個(gè)空的<li class="menuDiv"></li>,要想加入豎線就使用它了。
  按照上面說的方法,我們?cè)偬砑右韵麓a:

 程序代碼
.menuDiv {width:1px;height:28px;background:#999}

,保存預(yù)覽一下,豎線是否已經(jīng)出來了?關(guān)于這段代碼就不多講了,應(yīng)該是很容易理解的。



  不過,菜單選項(xiàng)的文字卻在頂部,我們?cè)傩薷某梢韵麓a:

 程序代碼
#menu ul li {float:left;margin:0 10px;display:block;line-height:28px}


  關(guān)于display:block;line-height:28px大家可以去參閱一下手冊(cè),我就不多講了。

  效果基本上已經(jīng)實(shí)現(xiàn)了,剩下的就是修改菜單的超鏈接樣式,在css.css中添加以下代碼:

 程序代碼
#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
#menu ul li a:hover{}


  這個(gè)也不多說了,沒什么好說的了,最后的效果如下:



  這一節(jié)到這里就完畢了,順便把素材提供給大家:
  構(gòu)思圖: 點(diǎn)擊下載
  HTML和CSS源文件: 點(diǎn)擊下載

四、頁面制作(1)----用好border和clear

  由于找工作找房子的原因,隔了這么久才能開始寫教程,心里感覺很對(duì)不起一直在關(guān)注本站的朋友,今天是找到房子的第二天,于是趕快繼續(xù)寫教程。

  這一節(jié)里面,主要就是想告訴大家如何使用好borderclear這兩個(gè)屬性。

  首先,如果你曾用過table制作網(wǎng)頁,你就應(yīng)該知道,如果要在表格中繪制一條虛線該如何做,那需要制作一個(gè)很小的圖片來填充,其實(shí)我們還有更簡單的辦法,只要在<td></td>中加入這么一段就可以了,你可以試試:
  <div style="border-bottom:1px dashed #ccc"></div>

  大家可以再次參考手冊(cè),然后你就能明白dashed、solid、dotted...等的作用,利用它們你可以制作出許多效果來,實(shí)線、虛線、雙線、陰影線等等。

 程序代碼
<div id="banner"></div>


  以上代碼便可以實(shí)現(xiàn)設(shè)計(jì)草圖中的banner,在css.css中加入以下樣式:

 程序代碼
#banner {
    background:url(banner.jpg) 0 30px no-repeat; /*加入背景圖片*/
    width:730px; /*設(shè)定層的寬度*/
    margin:auto; /*層居中*/
    height:240px; /*設(shè)定高度*/
    border-bottom:5px solid #EFEFEF; /*畫一條淺灰色實(shí)線*/
    clear:both /*清除浮動(dòng)*/
}


  通過border很容易就繪制出一條實(shí)線了,并且減少了圖片下載所占用的網(wǎng)絡(luò)資源,使得頁面載入速度變得更快。

  另一個(gè)要說明的就是clear:both,表示清除左、右所有的浮動(dòng),在接下來的布局中我們還會(huì)用這個(gè)屬性:clear:left/right。在這里添加clear:both是由于之前的ul、li元素設(shè)置了浮動(dòng),如果不清除則會(huì)影響banner層位置的設(shè)定。

 程序代碼
<div id="pagebody"><!--頁面主體-->
    <div id="sidebar"><!--側(cè)邊欄-->
    </div>
    <div id="mainbody"><!--主體內(nèi)容-->
    </div>
</div>


  以上是頁面主體部分,我們?cè)赾ss.css中添加以下樣式:

 程序代碼
#pagebody {
    width:730px; /*設(shè)定寬度*/
    margin:8px auto; /*居中*/
}
#sidebar {
    width:160px; /*設(shè)定寬度*/
    text-align:left; /*文字左對(duì)齊*/
    float:left; /*浮動(dòng)居左*/
    clear:left; /*不允許左側(cè)存在浮動(dòng)*/
    overflow:hidden; /*超出寬度部分隱藏*/
}
#mainbody {
    width:570px;
    text-align:left;
    float:right; /*浮動(dòng)居右*/
    clear:right; /*不允許右側(cè)存在浮動(dòng)*/
    overflow:hidden
}


  為了可以查看到效果,建議在#sidebar和#mainbody中加入以下代碼,預(yù)覽完成后可以刪除這段代碼:

 程序代碼
border:1px solid #E00;
height:200px


  保存預(yù)覽效果,可以發(fā)現(xiàn)這兩個(gè)層完美的浮動(dòng),在達(dá)到了我們布局的要求,而兩個(gè)層的實(shí)際寬度應(yīng)該160+2(border)+570+2=734px,已經(jīng)超出了父層的寬度,由于clear的原因,這兩個(gè)層才不會(huì)出現(xiàn)錯(cuò)位的情況,這樣可以使我們布局的頁面不會(huì)因?yàn)閮?nèi)容太長(例如圖片)而導(dǎo)致錯(cuò)位。


  而之后添加的overflow:hidden則可以使內(nèi)容太長(例如圖片)的部份自動(dòng)被隱藏。通常我們會(huì)看到一些網(wǎng)頁在載入時(shí),由于圖片太大,導(dǎo)致布局被撐開,直到頁面下載完成才恢復(fù)正常,通過添加overflow:hidden就可以解決這個(gè)問題。

  CSS中每一個(gè)屬性運(yùn)用得當(dāng),就可以解決許多問題,或許它們與你在布局的頁并沒有太大的關(guān)系,但是你必須知道這些屬性的作用,在遇到難題的時(shí)候,可以嘗試使用這些屬性去解決問題。

  源文件可以再下一節(jié)中再次下載。
最近看過許多網(wǎng)友制作的SKIN的CSS文件,發(fā)現(xiàn)其中有著許多冗余的代碼。下面我來跟大家介紹一下,如何清除這些冗余的代碼,讓你的CSS文件更加簡潔。

  一、margin、padding屬性
  參照相關(guān)資料我們可以知道,margin和padding代表的意思分別是外部邊距和內(nèi)部填充距離,在許多網(wǎng)友的CSS中,關(guān)于這兩個(gè)屬性的冗余代碼是出現(xiàn)得最多的。比如:margin:0px,大家可以查看一下自己的CSS文件中,是否許多的margin:0px,其中有的是不需要的,你可以嘗試刪除它,當(dāng)然也并不是所有的margin:0px都沒有用,相同,padding:0px也一樣。

  另外,margin和padding中各項(xiàng)屬性的順序是:上右下左,你只要記住是順時(shí)針方向就好了。我們?cè)倏纯催@兩段代碼:
margin:0px 0px 0px 10px;
margin-left:10px;
其實(shí)他們的作用是一樣的,下面的則是一種縮寫,使用縮寫我們可以減少CSS代碼,并使閱讀起來更為方便。(padding也相同。)

  二、!important;屬性
  !important是CSS1就定義的語法,作用是提高指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán)。IE是不支持這個(gè)語法的,而其他的瀏覽器都支持,通過這一點(diǎn),我們可以得知,設(shè)置了優(yōu)先權(quán)的代碼是不會(huì)被IE執(zhí)行的。所以我們可以important的后面添加CSS樣式,使其可以區(qū)別于IE和FireFox等瀏覽器。

  上次在看Miles的CSS代碼時(shí),我看到了這樣一句:
height:50px !important;height:50px;
  這里就是多余的了,我們可以這樣寫:height:50px就夠了,這個(gè)錯(cuò)誤在我剛開始制作CSS時(shí)也曾出現(xiàn)過。

  三、text-align、font樣式
  這兩個(gè)樣式的作用我就不說了,但是這兩個(gè)樣式在許多網(wǎng)友的CSS中也存在許多冗余。下面我來舉例說明一下,層的定義如下:
<div id="main">
    <div id="body1">
        <div id="content1">
        </div>
    </div>
    <div id="body2">
    </div>
<div>

CSS文件如下(錯(cuò)誤示例):
#main{width:500px;text-algin:left;font-size:12px;color:#000000;}
#body1{width:500px;text-algin:center;font-size:12px;color:#FF0000;}
#content{text-algin:left;font-size:12px;color:#000000;}
#body2{text-algin:left;font-size:12px;color:#000000;}

  大家可以從上面的代碼中輕易地看出,有許多的冗余代碼,現(xiàn)在我們來書寫正確的代碼:
#main{width:500px;text-algin:left;font-size:12px;color:#000000;}
#body1{text-algin:center;color:#FF0000;}
#content{width:300px;text-algin:left;color:#000000;}
#body2{}

  以上就是正確的代碼,由于大家在制作SKIN時(shí),對(duì)PJBLOG的DIV結(jié)構(gòu)沒搞清楚,才會(huì)出現(xiàn)這種錯(cuò)誤。

  四、display:none的使用
  display:none的作用就是使被定義的層不顯示。我們?cè)賮砜纯催@段代碼:
#blogTitle{font-size:0px;margin:10px 3px 3px 40px;height:20px;color:#FFC1E6;display:none}

  大家有沒有覺得這有些多余呢,是的,既然設(shè)置了不顯示,為何還要保留那些不必要的樣式呢?出現(xiàn)這種情況我就知道,這個(gè)SKIN是改自某人的。

  五、還是margin和padding
  我還是通過例子來給大家說明,層的定義同上,以下是CSS的定義(錯(cuò)誤示例):
#main{margin:5px 0px 5px 0px;}
#body1{margin:12px 0px 10px 0px;}
#content{margin:8px 0px 2px 0px;}
#body2{margin:10px 0px 15px 0px;}

  現(xiàn)在我們?cè)賮頃鴮懻_的樣式:
#main{}
#body1{margin-top:17px ;}
#content{margin:8px 0px 2px 0px;}
#body2{margin:20px 0px ;}

  這里需要大家制作一下示例才能了解,首先#main{margin:5px 0px 5px 0px;}是沒有必要的,他無非定義的就是整個(gè)頁面的上、下外邊距。(在一定場合下卻需要這樣書寫)我們同樣可以通過定義#body1的上邊距和#body2的下邊距來設(shè)置,所以才有了#body1{margin-top:17px ;}#body2{margin:20px 0px ;}(這里定義的是#body2的上下邊距為20px,左右邊距為0px,也是縮寫的一種方式。)

  同樣的道理,于是我們可以省略了#body1的下邊距,在#content層在定義上邊距,另外大家還需要先弄清楚層的嵌套關(guān)系,否則就會(huì)出錯(cuò)。

  好了,寫到這里我也該去睡了,以上就是這些時(shí)間查看大家的CSS文件獲得的經(jīng)驗(yàn),希望對(duì)大家書寫CSS的時(shí)候有所幫助,制作出來的SKIN更加簡潔、明了。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多