Div+CSS 佈局大全

Div+CSS 佈局

 

 

 

 

 

 

 

Jesse Zhao

 

網站http://JesseZhao.cnblogs.co m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

 

 

 

目錄

divcss 入門 ................................................................................................................................. 4

 

XHTML css+div ..................................................................................................................... 6 DIV+CSS 1 : DOCTYPE ........................................................................... 9 第一 ............................................................................................................................................. 9

什麼 DOCTYPE.............................................................................................................................. 10 DOCTYPE ........................................................................................................... 10 ............................................................................................................................................... 10 DIV+CSS 2 :空間 ................................................................................... 10 DIV+CSS 3 :....................................................................................... 11 DIV+CSS 4 :調........................................................................................... 11 調............................................................................................................................. 11 調......................................................................................................................... 12 DIV+CSS 5 :head ............................................................................... 12 圖標 ................................................................................................................................ 12 .................................................................................................................. 12 DIV+CSS 6 :XHTML .................................................................................... 12

1.............................................................................. 13

 

2.使小寫 ......................................................................... 13

 

3. XML 嵌套 ............................................................................................... 13

 

4.""起來 ............................................................................................... 13

 

5.把所<&表示 ............................................................................................... 13

 

6................................................................................................................... 13

 

7.使--....................................................................................................... 13

 

DIV+CSS 7 :CSS ............................................................................................... 14

 

1.............................................................................................................................. 14

 

2.顏色........................................................................................................................................ 14

 

3..................................................................................................................................... 14

 

 

2


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

4..................................................................................................................................... 14

 

5.擇器 ................................................................................................................................ 14

 

6.id ................................................................................................................................... 14

 

6.擇器 ................................................................................................................................ 15

 

7.......................................................................................................................... 15

 

DIV+CSS 8 :CSS ........................................................................................ 15

 

1. DIV..................................................................................................................................... 15

 

2.CSS2 盒模 ............................................................................................................................... 16

 

3.處理 .......................................................................................................... 17

 

DIV+CSS 9 : CSS ............................................................................ 17

 

1..................................................................................................................................... 18

 

2. body ........................................................................................................................... 18

 

3.要的 div.......................................................................................................................... 18

 

4.100%?....................................................................................................................... 20 DIV+CSS 10 :高度......................................................................................... 20 DIV+CSS 11 :.................................................................................. 21

1.().............................................................................................................. 21

 

2.().............................................................................................................. 22

 

DIV+CSS 12 :.................................................................................. 24

 

1.XHTML ................................................................................................................................. 24

 

2.CSS2 ................................................................................................................................... 25

 

CSS ................................................................................................................................. 25

 

WEB ................................................................................................................................. 30

 

Div+CSS ........................................................................................................................... 37

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

divcss 入門

 

你正在學習 CSS 佈局嗎?是不是還不能完全掌握純 CSS 佈局?通常有兩種情況阻礙你的學習:

第一種可能是你還沒有理解 CSS 處理頁面的原理在你考慮你的頁面整表現效果前你應當先考慮內容的語義和結構, 然後再針對語義、結構添加 CSS。這篇文章將告訴你應該怎樣把 HTML 結構化。

另一種原因是你對那些非常熟悉的表現層屬(例如cellpadding,hspace[x1] align="left")束手無策,不知道該 轉換成對應的什麼 CSS 語句。當你解決了第一種問題,知道了如何結構化你的 HTML,我再給出一個列表,詳細列出原來的表 現屬性用什麼 CSS 來代替。

結構化 HTML

我們在剛學習網頁製作時,總是先考慮怎麼設計,考慮那些圖片、字體、顏、以及佈局方案。然我們用 Photoshop

或者 Fireworks 畫出來、切割成小圖。最後再通過編輯 HTML 將所有設計還原表現在頁面上。

如果你希望你的 HTML 頁面用 CSS 佈局(CSS-friendly ),你需要回頭重來,先不考“外”,要先思考你的頁面 內容的語義和結構。

外觀並不是最重要的一個結構良好的 HTML 頁面可以以任何外觀表現出來CSS Zen Garden 是一個典型的例子CSS Zen

Garden 幫助我們最終認識到 CSS 的強大力量。

HTML 不僅僅只在電腦屏幕上閱讀。你用 photoshop 精心設計的畫面可不能顯示在 PDA、移動電話和屏幕閱讀機上。但 是一個結構良好的 HTML 頁面可以通過 CSS 的不同定義,顯示在任何地方,任何網絡設備上。

開始思考 首先要學習什麼"",一些作家也稱之"語義"。這個術語的意思是你需要析你的內容塊,以及每塊內容服務的

目的,然後再根據這些內容目的建立起相應的 HTML 結構。 如果你坐下來仔細分析和規劃你的頁面結構,你可能得到類似這樣的幾塊:

標誌和站點名稱 主頁面內容 站點導(主菜) 子菜單

搜索框 功能區(例如購物車、收銀) 頁腳(版權和有關法律聲)

我們通常採用 DIV 元素來將這些結構定義出來,類似這樣:

 

<div id="header"></div>

 

<div id="content"></div>

 

<div id="globalnav"></div>

 

<div id="subnav"></div>

<div id="search"></div>

 

<div id="shop"></div>

 

<div id="footer"></div>

這不是佈局,是結構。這是一個對內容塊的語義說明。當你理解了你的結構,就可以加對應的 ID DIV 上。DIV 容器中 可以包含任何內容塊,也可以嵌套另一個 DIV。內容塊可以包含任意的 HTML ---標題、段落、圖片、表格、列表等等。 根據上面講述的,你已經知道如何結構化 HTML,現在你可以進行佈局和樣式定義了。每一個內容塊都可以放在頁面上任

何地方,再指定這個塊的顏色、字體、邊框、背景以及對齊屬性等等。使用選擇器是件美妙的事

id 的名稱是控制某一內容塊的手,通過給這個內容塊套上 DIV 並加上唯一的 id,你就可CSS 選擇器來精確定義每一

個頁面元素的外觀表,包括標題、列表、圖片、接或者段落等等。例如你#header 寫一個 CSS 規則,就可以完全不同於

#content 裏的圖片規則。

 

4


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

另外一個例子是:你可以通過不同規則來定義不同內容塊裏的鏈接樣。類似這樣#globalnav a:link 或者 #subnav

a:link 或者#content a:link。你也可以定義不同內容塊中相同元素的樣式不一樣。例如,通#content p #footer p 分 別定義#content #footer p 的樣式。從結構上講,你的頁面是由圖片、鏈接、列表、段落等組成的,這些元素本身並不會對顯示在什麼網絡設備(PDA 還是手機或者網絡電)有影響,它們可以被定義爲任何的表現外觀。

一個仔細結構化的 HTML 頁面非常簡單,每一個元素都被用於結構目的。當你想縮進一個段落,不需要使用 blockquote 標籤只要使用 p 標籤並對 p 加一個 CSS margin 規則就可以實現縮進目的p 是結構化標籤margin 是表現屬性前者 屬於 HTML,後者屬於 CSS(這就是結構於表現的相分.)

良好結構HTML 頁面內幾乎沒有表現屬性標籤。代碼非常乾淨簡潔。例,原先的代<table width="80%" cellpadding="3" border="2" align="left">,現在可以只在 HTML 中寫<table>,所有控制表現的東西都CSS 中去,在 結構化的 HTML table 就是表格,而不是其他什(比如被用來佈局和定)

親自實踐一下結構化

面說最基構,用中以根來調塊。出現 DIV 的情會看到

"container"層中又有其它層,結構類似這樣:

<div id="navcontainer">

 

<div id="globalnav">

 

<ul>a list</ul>

 

</div>

 

<div id="subnav">

<ul>another list</ul>

 

</div>

 

</div>

嵌套的 div 元素允許你定義更多的 CSS 規則來控制表現,例如:你可以#navcontainer 一個規則讓列表居右,再給

#globalnav 一個規則讓列表居左,而#subnav list 另一個完全不同的表現。 用 CSS 替換傳統方法

下面的列表將幫助你用 CSS 替換傳統方法:

HTML 屬性以及相對應的 CSS 方法

HTML 屬性 CSS 方法 說明

 

align="left"

align="right" float: left;

float: right; 使用 CSS 可以浮動 任何元:圖片、段落div、標題、表格、列表等等 當你使用 float 屬性,必須給這個浮動元素定義一個寬度。

marginwidth="0" leftmargin="0" marginheight="0" topmargin="0" margin: 0; 使用 CSS, margin 可以設置在任何元

素上, 不僅僅是 body 元素.更重要的,你可以分別指定元素的 top, right, bottom left margin 值。

vlink="#333399" alink="#000000" link="#3333FF" a:link #3ff;

 

a:visited: #339; a:hover: #999; a:active: #00f;

HTML 中,鏈接的顏色作爲 body 的一個屬性值定義。整個頁面的鏈接風格都一樣。使CSS 的選擇器,頁面不同部分

的鏈接樣式可以不一樣。

bgcolor="#FFFFFF" background-color: #fff; CSS 中,任何元素都可以定義背景顏色,不僅僅侷限於 body table

元素。

bordercolor="#FFFFFF" border-color: #fff; 任何元素都可以設置邊(boeder)你可以分別定義 top, right, bottom

left border="3"

 

5


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

cellspacing="3" border-width: 3px; CSS你可以定義 table 的邊框爲統一樣式也可以分別定義 top, right, bottom

and left 邊框的顏色、尺寸和樣式。

你可以使用 table, td or th 這些選擇.

如果你需要設置無邊框效果,可以使用 CSS 定義: border-collapse: collapse;

 

<br clear="left">

 

<br clear="right">

 

<br clear="all"> clear: left; clear: right; clear: both;

許多 2 列或者 3 列布局都使用 float 屬性來定位。如果你在浮動層中定義了背景顏色或者背景圖片,你可以使用 clear

屬性. cellpadding="3" vspace="3"

hspace="3" padding: 3px; CSS任何元素都可以設定 padding 屬性同樣padding 可以分別設置 top, right, bottom

and leftpadding 是透明的。 align="center" text-align: center; margin-right: auto; margin-left: auto;

Text-align 只適用於文.

divp 這樣的塊級怨毒可以通過 margin-right: auto; margin-left: auto;來水平居中 一些令人遺憾的技巧和工作環境

由於瀏覽器對 CSS 支持的不完善,我們有時候不得不採取一些技(hacks)或建立一種環(Workarounds)CSS 實現 傳統方法同樣的效。例如塊級素有時侯需使用水平居的技巧,盒bug 的技巧等。所有這技巧都在 Molly Holzschlag 的文章Integrated Web Design: Strategies for Long-Term CSS Hack Management》中有詳細說明。

另外一個關於 CSS 技巧的資源站點是 Big John Holly Bergevin “Position is Everything

 

 

XHTML css+div 總結

 

xml(extensible Markup Language)的出現,結構化文檔和數據有了一個通用的、科適應的格式,不僅僅應用在 web 上,也可 以應用在任何地方。標準稱爲可能。

XHTML The Extensible HyperText Markup Language 可擴展標識語言的縮寫。在 HTML4.0 的基礎上,用 XML 的規則對其進 行擴展,得到了 XHTML。它實現 HTML XML 的過渡。

CSS Cascading Style Sheets 層疊樣式表的縮寫。純 CSS 佈局與結構式 XHTML 相結合能幫助設計師分離外觀與結構,使站點的訪問及維護更加容易。

1)爲頁面添加正DOCTYPE

DOCTYPE document type 的簡寫。主要用來說明你用的 XHTML 或者 HTML 是什麼版本。瀏覽器根據你 DOCTYPE 定義的

DTD(文檔類型定)來解釋頁面代碼。

XHTML1.0 提供了三種 DOCTYPE 可選擇:

(1)過渡型Transitional --使用非常普遍。

<!DOCTYPE                  html                       PUBLIC                    "-//W3C//DTD                       XHTML                   1.0

 

Transitional//EN"                   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

(2)嚴格型Strict

 

<!DOCTYPE            html                PUBLIC              "-//W3C//DTD                XHTML             1.0                Strict//EN"

 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1           -strict.dtd">

 

 

6


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

(3)框架型Frameset

 

<!DOCTYPE                  html                      PUBLIC                    "-//W3C//DTD                       XHTML                   1.0

 

Frameset//EN"           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

2)設定一個名字Namespace

直接在 DOCTYPE 聲明後面添加如下代碼:

 

<html XMLns="http://www.w3.org/1999/xhtml" >

一個 namespace 是收集元素類型和屬性名字的一個詳細的 DTDnamespace 聲明允許你通過一個在線地址指向來識別你的

namespace。只要照樣輸入代碼就可以。

 

 

3)聲明你的編碼

爲了被瀏覽器正確解釋和通過標識校驗,所有的 XHTML 文檔都必須聲明它們所使用的編碼語言。代碼如下:

 

<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

這裏聲明的編碼語是簡體中文 GB2312,你如果需要製作繁體內容,可以定義爲 BIG5

4)用小寫字母書所有的標籤

XML 對大小寫是敏感的,所以XHTML 也是大小寫有區別的。所有的 XHTML 元素和屬性的名字都必須使用小寫。否則你的 文檔將被 W3C 校驗認爲是無效的。例如下面的代碼是不正確的:

 

 

5)爲圖片添加 alt 屬性

爲所有圖片添加 alt 屬性alt 屬性指定了當圖片不能顯示的時候就顯示供替換文本,這樣做對正常用戶可有可無,但對 純文本瀏覽器和使用屏幕閱讀機的用戶來說是至關重要的。只有添加了 alt 屬性,碼才W3C 正確性校驗通過。注意的 是我們要添加有意義的 alt 屬性,象下面這樣的寫法毫無意義:

<img src="logo.gif" alt="logo.gif">

正確的寫法:

<img src="logo.gif" alt="互動力工作室標誌,點擊返回首">

 

 

6)給所有屬性值引號

HTML 中,你可以不需要給屬性值加引號,但是在 XHTML 中,它們必須被加引號。還必須用空格分開屬性。 例:<hr width="75%"size="7"/> 這也是不正確的

 

 

7)關閉所的標籤

XHTML 中,每一個打開的標籤都必須關閉。空標籤也要關閉,在標籤尾部使用一個正斜槓 "/"來關閉它們自己。例如:

 

<br />

 

 

8)收藏夾小圖標

例如:首先製作一個 16x16 icon 圖標,命名爲 favicon.ico,放在根目錄下。然後將下面的代碼嵌入 head 區:

 

<link rel="icon" href="/favicon.ico" type="image/x-icon" />

 

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />

 

 

9)CSS 定義素外觀

css 佈局的一個好處是可以批量對頁面進行修改,它能將文檔結構和表現層分離開來,減輕工作量和服務器的負荷,增加站點的擴展能力和應用。

 

 

css 是不區別空格和大小寫的,下面是一些基礎的歸納

(1)顏色值

 

 

7


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

顏色值可以用 RGB 值寫,例如color : rgb(255,0,0),也可以用十六進制寫,就象上面例子 color:#FF0000。如果十

六進制值是成對重複的可以簡寫,效果一樣。例:#FF0000 可以寫#F00。但如果不重複就不可以簡寫,例#FC1A1B 必須 寫滿六位。

(2)定義字體

web 標準推薦如下字體定義方法:

body { font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif; }

字體按照所列出的順序選用。如果用戶的計算機含有 Lucida Grande 字體,文檔將被指定爲 Lucida Grande。沒有的話, 就被指定爲 Verdana 字體,如果也沒有 Verdana,就指定爲 Lucida 字體,依此類推,;

Lucida Grande 字體適合 Mac OS X

Verdana 字體適合所有的 Windows 系統;

Lucida 適合 UNIX 用戶

""適合中文簡體用;

如果所列出的字體都不能用,則默認的 sans-serif 字體能保證調;

(3)羣選擇器 當幾個元素樣式屬性一樣時,可以共同調用一個聲明,元素之間用逗號分隔,:

p, td, li { font-size : 12px ; }

(4)派生選擇器 可以使用派生選擇器給個元素裏的子元素定義樣式,例如這樣:

li strong { font-style : italic; font-weight : normal}

就是給 li 下面的子元素 strong 定義一個斜體不加粗的樣式。

(5)id 選擇器

CSS 佈局主要用"div"來實現,而 div 的樣式通"id 選擇"來定義。例如我們首先定義一個層

 

<div id="menubar"></div>

然後在樣式表裏這樣定義:

 

#menubar {MARGIN: 0px;BACKGROUND: #FEFEFE;COLOR: #666;}

其中"menubar"是你自己定義的 id 名稱。注意在前面"#"號。

id 選擇器也同樣支持派生,例如:

 

#menubar p { text-align : right; margin-top : 10px; }

這個方法主要用來定義層和那些比較複雜,有多個派生的元素。

(6)類別選擇器

CSS 裏用一個點開頭表示類別選擇器定義,例如:

 

.14px {color : #f60 ;font-size:14px ;}

在頁面中,用 class= "類別"的方法調用:

<span class="14px">14px 大小的字</span>

這個方法比較簡單靈活,可以隨時根據頁面需要新建和刪除。

(7)定義鏈接的樣式

CSS 中用四個僞類來定義鏈接的樣式,分別是a:linka:visiteda:hover a : active,例如:

 

a:link{font-weight : bold ;text-decoration : none ;color : #c00 ;} a:visited {font-weight : bold ;text-decoration : none ;color : #c30 ;} a:hover {font-weight : bold ;text-decoration : underline ;color : #f60 ;} a:active {font-weight : bold ;text-decoration : none ;color : #F90 ;}

以上語句分別定義了 "鏈接已訪問過的鏈接鼠標停在上方時點下鼠標"的樣式必須按以上順序寫否則

顯示可能和你預想的一樣。記住它們的順序“LVHA

 

 

 

8


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

(8)組合使用選擇器創造精緻的設計效果

用漂亮的圖案代替普通無序列表前沉悶的黑點。站點 http://marine.happycog.com/

先用 css 規則告訴類別屬性 inventory 的無序列表。

ul.inventory{

 

list-style:disc url(/images/common/lister2.gig) inside;}

它的調用標:

 

<ul class="inventory">

 

<li><a href="/angelfish">Angelfish</a>(67 items)</li>

<li><a href="/angeld">Angels/Frogfish</a>(35 items)</li>

 

<li><a href="/anthias">Angelfish</a>(5526 items)</li>

 

<li><a href="/basslets">Angelfish</a>(15 items)</li>

 

<ul>

(9)縮寫是按照順時針的順序

margin:25px 0 25px 0;

(10)行高

line-height:150% 說明行距爲正常的 150%

10)結構化代碼 div(division)idclass

用它們來書寫緊湊的 xhtml,更明智的使用 css.

(1)結構化 id 標籤,與 class 的有區別:

如果你的屬性頁面包含了一個 div,它的 id "content",它就不可能有另外一個 div 或者其他元素擁有相同的名字。相反,

class 屬性可以在意個頁面中一次又一次地使用。

(2)id 的規則

一個 id 值必須用一個字母或者下劃線開頭,它不能用一個數字進行開頭,然跟隨字母、數字和下劃線。空格和連字

-都是不允許的。

 

 

11)製作好的網可以到 w3c 進行標準校正 http:validator.w3.org http://jigsaw.w3.org/css-validator/

 

DIV+CSS 1 :什麼 DOCTYPE

 

前言

 

大家好這個系列文章是按阿捷自己製作這個站點的過程編寫的之前阿捷也一直沒有製作過一個真正符合 web 標準的網站。 現在邊參考國外資料邊製作,同時把過程中的心得和經驗記錄下來,希望對大家有點幫助。好了,讓我們開始吧

一天

 

開始製作符合標準的站點,第一件事情就是聲明符合自己需要的 DOCTYPE。 查看本站首頁原代碼,可以看到第一行就是:

<!DOCTYPE             html                 PUBLIC               "-//W3C//DTD                 XHTML               1.0                 Transitional//EN"

 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

打開一些符合標準的站點,例如著名 web 設計軟件開發商 Macromedia,設計大師 Zeldman 的個人網站,會發現同樣的代碼。 而另一些符合標準的站(例如 k10k.net)的代碼則如下:

 

 

 

9


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

<!DOCTYPE              html                   PUBLIC                "-//W3C//DTD                   XHTML                1.0                   Frameset//EN"

 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

那麼這些代碼有什麼含義?一定要放置嗎?

什麼 DOCTYPE

 

上面這些代碼我們稱做 DOCTYPE 聲明DOCTYPE document type(文檔類)的簡寫,用來說明你用的 XHTML 或者 HTML 是什 麼版本。

其中的 DTD(例如上例中的 xhtml1-transitional.dtd)叫文檔類型定義裏面包含了文檔的規則瀏覽器就根據你定義的 DTD

來解釋你頁面的標識,並展現出來。

要建立符合標準的DOCTYPE 聲明是必不可少的關鍵組成部分除非你的 XHTML 確定了一個正確的 DOCTYPE否則你的標 識和 CSS 都不會生效。

XHTML 1.0 提供了三種 DTD 聲明可供選擇:

·      過渡(Transitional):要求非常寬鬆的 DTD,它允許你繼續使用 HTML4.01 的標識(但是要符合 xhtml 的寫)。完 整代碼如下:

 

<!DOCTYPE             html                 PUBLIC               "-//W3C//DTD                 XHTML               1.0                 Transitional//EN"

 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

·      嚴格(Strict):要求嚴格的 DTD,你不能使用任何表現層的標識和屬性,例<br>。完整代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

·      框架(Frameset):專門針對框架頁面設計使用的 DTD,如果你的頁面中包含有框架,需要採用這種 DTD。完整代碼 如下:

<!DOCTYPE              html                   PUBLIC                "-//W3C//DTD                   XHTML                1.0                   Frameset//EN"

 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

DOCTYPE

 

理想情況當然是嚴格的 DTD,但對於我們大多數剛接觸 web 標準的設計師來說,過渡的 DTD(XHTML 1.0 Transitional)是目前 理想選(包括本站,使用的也是過渡型 DTD)。因爲這種 DTD 還允許我們使用表現層的標識、元素和屬性,也比較容易通過

W3C 的代碼校驗。

注:上面說"表現層的標識、屬"是指那些純粹用來控制表現的 tag,例如用於版的表格、背景顏色標識等。在 XHTML 中標識是用來表示結構的,而不是用來實現表現形式,我們過渡的目的是最終實現數據和表現相分離。打個比方:人體模特換衣服。模特就好比數據,衣服則是表現形式,模特和衣服是分的,這樣你就可以隨意換衣服。而原

HTML4 中,數據和表現是混雜在一起的,要一次性換個表現形式非常困難。呵呵,有點抽象了,這個概念需要我們在應用過程中逐步領會。

補充

 

DOCTYPE 聲明必須放在每一個 XHTML 文檔最頂部,在所有代碼和標識之上。

 

 

DIV+CSS 2 :是名空間

 

DOCTYPE 聲明好以後,接下來的代碼是:

<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">

通常我們 HTML4.0 的代碼只<html>,這裏"xmlns"是什麼呢?

這個"xmlns"XHTML namespace 的縮寫,叫"名字空"聲明。名字空間是什麼作用呢?阿捷自己的理解是:

 

 

 

 

 

10


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

由於 xml 允許你自己定義自己的標識,你定義的標識和其他人定義標識有可能相同,但表示不同的意義。當文件交換或者

共享的時候就容易產生錯誤。爲了避免這種錯誤發生XML 採用名字空間聲明,允許你過一個網址指向來識別你的標識。例如:

小王和小李都定義了一<book> 標識,如果小王的名字空間"http://www.xiaowang.com" ,小李的名字空間

"http://www.xiaoli.com",那麼當兩個文檔交換數據時,也不會混<book>標識,因爲它屬於不同的名字空間。 更通俗的解釋是名字空間就是給文檔做一個標記告訴別人這個文檔是屬於誰的只不過這""用了一個網址來代替。 XHTML HTML XML 過渡的標識語言,它需要XML 文檔規則,因此也需要定義名字空間。又XHTML1.0 不能自定義 標識,所以它的名字空間都相同,就"http://www.w3.org/1999/xhtml"。如果你還不太理解不要緊,目前階段我們只要照抄代碼就可以了。

後面的 lang="gb2312",指定你的文檔用簡體中文。

 

 

DIV+CSS 3 :語言

 

第三步是定義你的語言編碼,類似這樣:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

爲了被瀏覽器正確解釋和通過 W3C 代碼校驗所有的 XHTML 文檔都必須聲明它們所使用的編碼語言我們一般使用 gb2312(簡 體中文),製作多國語言頁面也有可能用 UnicodeISO-8859-1 等,根據你的需要定義。 通常這樣定義就可以了。但是要補充說明的是XML 文檔並不是這樣定義語言編碼的XML 的定義方式如下:

<?xml version="1.0" encoding="gb2312"?>

你在 Macromedia.com 的首頁代碼第一行就可以看見類似的語句這也是 W3C 推薦使用的定義方法那爲什麼我們不直接採用 這種方法呢?原因是一些瀏覽器對標準的支持不完善,不能正確理解這樣的定方法,比如 IE6/windows。所以在目前過渡 方案下,我們依然推薦使用 meta 方式。當然,你可以兩種方法都寫。

看本站源代碼,你會發現語言編碼定義的地方還多一句:

 

<meta http-equiv="Content-Language" content="gb2312" /> 這是針對老版本瀏覽器寫的,以保證各種瀏覽器都能正確解釋頁面。 注意在上面聲明語句的最後你看到有一個斜"/"這和我們以前的 HTML4.0 的代碼寫法不同原因是 XHTML 語法規則要 求所有的標識都必須有開始和結束<body></body><p></p>對於不成對的標識要求在標識最後加一個空格, 然後跟一"/"。例<br><br /><img><img />,加空格的原因是避免代碼連在一起瀏覽器不識別。

 

DIV+CSS 4 :調樣式表

 

web 標準設計網站過渡的方法主要是採用 XHTML+CSScss 樣式表是必不可少的這就要求所有網頁設計師必須熟練掌握 CSS,如果你以前不常用,那麼現在就開始學習吧。要製作符合 web 標準的網站,不懂 CSS 是設計不出漂亮的頁面的。 事實上,所有表現的地方都需要用 CSS 來實現。我們以前都習慣用 table 來定位和佈局,現在要DIV 來定位和佈局。這 是思維方式的變化,一開始有些不習慣。呵呵,任何變革都會有阻力的,爲了享受標準"",放棄一些老的傳統做 法是值得的。

調式表

 

在以前,我們通常採用 2 種方法使用樣式表:

·      頁面內嵌法:就是將樣式表直接寫在頁面代碼的 head 區。類似這樣:

<style type="text/css"> <!-- body { background : white ; color : black ; } --> </style>

·      外部調用法:將樣式表寫在一個獨立.css 文件中,然後在頁面 head 區用類似以下代碼調用。

<link rel="stylesheet" rev="stylesheet" href="css/style.css" type="text/css" media="all" />

 

 

 

11


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

在符合 web 標準的設計中,我們使用外部調用法,好處言而喻,你可以不修改頁面只修.css 文件而改變頁面的樣式。如

果所有頁面都調用同一個樣式表文件,那麼改一個樣式表文件,可以改變所有文件的樣式。 調樣式表 查看某些符合標準站點的原代碼,你可能看到,在調用樣式表的地方有如下 2 句:

<link      rel="stylesheet"         rev="stylesheet"        href="css/style.css"         type="text/css"         media="all"      />     <style type="text/css" media="all">@import url( css/style01.css );</style>

爲什麼要寫兩次呢?

實際上一般情況下用外聯法調(就是第一)就足夠了我這裏使用雙表調用只是一種示例其中"@import"命令用於輸入 樣式表。"@import"命令在 netscape 4.0 版本瀏覽器是無效的。也就是說,當你希望某些效果在 netscape 4.0 瀏覽器中隱 藏,在 4.0 以上或其它瀏覽器中又顯示的時候,你可以採"@import"命令方法調用樣式表。

 

DIV+CSS 5 :head 區的其設置

 

這些技巧主要講 meta 標籤設置的,其實與符合 web 標準關係不大,只要注意在最後"/"關閉標籤就可以,但是既然是入門 教程,就寫得詳細一點吧。

 

如果你將本加入收藏可以看到在收藏夾網址之前的 IE 圖標變成了本站特別的圖標要實現這樣效果很簡單首先製作 一個 16x16 icon 圖標,名爲 favicon.ico,放在根目錄下。然後將下面的代碼嵌入 head 區:

<link rel="icon" href="/favicon.ico" type="image/x-icon" />

 

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> 準備內容 代碼如下,替換成你自己站點的內容就可以:

·      允許搜索機器人搜索站內所有鏈接。如果你想某些頁面不被搜索,推薦採用 robots.txt 方法

<meta content="all" name="robots" />

·      設置站點作者信息

<meta name="author" content="[email protected],阿捷" />

·      設置站點版權信息

<meta name="Copyright" content="www.w3cn.org,自由版,任意轉" />

·      站點的簡要介()

<meta name="description" content="新網頁設計師web 標準的教程站點,推動 web 標準在中國的應" />

·      站點的關鍵()

<meta content="designing, with, web, standards, xhtml, css, graphic, design, layout, usability, ccessibility, w3c, w3, w3cn, ajie" name="keywords" />

先介紹這麼多。補充說明,前面花了 5 節都是講 head 區的代碼,實際頁面內容還一字未提,呵呵,不要急,head 區是

非常重要的,看一個頁面的 head 的代碼就可以知道設計師是否夠專業。

 

 

DIV+CSS 6 :XHTML 規範

 

在開始正式內容製作之前我們必須先了解一下 web 標準有關代碼的規範瞭解這些規範可以幫助你少走彎,儘快通過代碼 校驗。

 

 

 

12


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

1.必須個相

 

以前在 HTML 你可以打開許多標籤<p><li>而不一定寫對應</p></li>來關閉它們但在 XHTML 中這是不合法 的。XHTML 要求有嚴謹的結構,所有標籤必須關閉。如果是單獨不成對的標籤,在標籤最後加一"/"來關閉它。例:

<br /><img height="80" alt="網頁設計" src="../images/logo_w3cn_200x80.gif" width="200" />

2.素和名字使小寫

 

HTML 不一樣XHTML 對大小寫是敏感的<title><TITLE>是不同XHTML 要求所有的標籤和屬性的名字都必須使用小寫例如<BODY>必須寫<body> 大小寫夾雜也是不被認可通常 dreamweaver 自動生成的屬性名"onMouseOver" 也必須修改"onmouseover"

3. XML 記都

 

同樣因爲 XHTML 要求有嚴謹的結構,因此所有的嵌套都必須按順序,以前我們這樣寫的代碼:

<p><b></p>/b>

必須修改爲:

 

<p><b></b>/p>

就是說,一層一層的嵌套必須是嚴格對稱。

4.須用""

 

HTML 中,你可以不需要給屬性值加引號,但是在 XHTML 中,它們必須被加引號。例:

 

<height=80>

必須修改爲:

 

<height="80">

特殊情況,你需要在屬性值裏使用雙引號,你可以",單引號可以使&apos;,例如:

 

<alt="say&apos;hello&apos;">

5.<&殊符

 

·      任何小於號<,不是標籤的一部分,都必須被編碼& l t ;

·      任何大於號>,不是標籤的一部分,都必須被編碼& g t ;

·      任何與號&,不是實體的一部分的都必須被編碼& a m p;

注:以上字符之間無空格。

6.一個值

 

XHTML 規定所有屬性都必須有一個值,沒有值的就重複本身。例如:

 

<td nowrap> <input type="checkbox" name="shirt" value="medium" checked>

必須修改爲:

 

<td nowrap="nowrap"> <input type="checkbox" name="shirt" value="medium" checked="checked">

7.容中使--

 

--”只能發生在 XHTML 註釋的開頭和結束,也就是說,在內容中它們不再有效。例如下面的代碼是無效:

<!--這裏是注-----------這裏是注-->

用等號或者空格替換內部的虛線。

<!--這裏是注============這裏是注-->

以上這些規範有的看上去比較奇怪,但這一切都是爲了使我們的代碼有一個統一、唯一的標準,便於以後的數據再利用。

 

 

13


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

 DIV+CSS 7 :CSS 入門

 

在瞭解 XHTML 代碼規範後,我們就要進行 CSS 佈局。首先先介紹CSS 的入門知識。果你已經很熟悉了,可以跳過這一 節,直接進入下一節。

CSS Cascading Style Sheets(層疊樣式)的縮寫。是一種對 web 文檔添加樣式的簡單機制,屬於表現層的佈局語言。

1.規範

 

分析一個典型 CSS 的語句:

p {COLOR:#FF0000;BACKGROUND:#FFFFFF}

·      "p"我們稱"選擇"(selectors)指明我們要"p"定義樣式;

·      樣式聲明寫在一對大括"{}"中;

·      COLOR BACKGROUND 稱爲"屬性"(property),不同屬性之間用分";"分隔;

·      "#FF0000""#FFFFFF"是屬性的(value)

2.

 

顏色值可以用 RGB 值寫,例如color : rgb(255,0,0),也可以用十六進制寫,就象上面例子 color:#FF0000。如果十六進 制值是成對重複的可以簡寫,效果一樣。例:#FF0000 可以寫#F00。但如果不重複就不可以簡寫,例#FC1A1B 必須寫滿 六位。

3.字體

 

web 標準推薦如下字體定義方法:

body { font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋體,sans-serif; }

·      字體按照所列出的順序選用。如果用戶的計算機含有 Lucida Grande 字體,文檔將被指定爲 Lucida Grande。沒有 的話,就被指定爲 Verdana 字體,如果也沒有 Verdana,就指定爲 Lucida 字體,依此類推

·      Lucida Grande 字體適合 Mac OS X

·      Verdana 字體適合所有的 Windows 系統;

·      Lucida 適合 UNIX 用戶

·      ""適合中文簡體用;

·      如果所列出的字體都不能用,則默認的 sans-serif 字體能保證調;

4.擇器

 

當幾個元素樣式屬性一樣時,可以共同調用一個聲明,元素之間用逗號分隔,: p, td, li { font-size : 12px ; }

5.可以使用派生選擇器給一個元素裏的子元素定義樣式,例如這樣: li strong { font-style : italic; font-weight : normal} 就是給 li 下面的子元素 strong 定義一個斜體不加粗的樣式。

6.id

 

CSS 佈局主要用"div"來實現,而 div 的樣式通"id 選擇"來定義。例如我們首先定義一個層

 

<div id="menubar"></div>

然後在樣式表裏這樣定義:

 

#menubar {MARGIN: 0px;BACKGROUND: #FEFEFE;COLOR: #666;}

其中"menubar"是你自己定義的 id 名稱。注意在前面"#"號。

 

14


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

id 選擇器也同樣支持派生,例如:

 

#menubar p { text-align : right; margin-top : 10px; }

這個方法主要用來定義層和那些比較複雜,有多個派生的元素。

6.

 

CSS 裏用一個點開頭表示類別選擇器定義,例如:

 

.14px {color : #f60 ;font-size:14px ;}

在頁面中,用 class="類別"的方法調用:

<span class="14px">14px 大小的字</span>

這個方法比較簡單靈活,可以隨時根據頁面需要新建和刪除。

7.

 

CSS 中用四個僞類來定義鏈接的樣式,分別是a:linka:visiteda:hover a : active,例如:

a:link{font-weight : bold ;text-decoration : none ;color : #c00 ;} a:visited {font-weight : bold ;text-decoration : none ;color : #c30 ;} a:hover {font-weight : bold ;text-decoration : underline ;color : #f60 ;} a:active {font-weight : bold ;text-decoration : none ;color : #F90 ;}

以上語句分別定義"鏈接、已訪問過的鏈接、鼠標停在上方時、點下鼠標"的樣式注意,必須按以上順序寫,否則顯示

可能和你預想的不一樣。記住它們的順序“LVHA

呵呵,看了這麼多,有點頭暈吧,實際上 CSS 的語法規範還有很多,這裏列的只是一些常用的,畢竟我們是循序漸進,不可能一口吃成胖:)

 

DIV+CSS 8 :CSS 佈局

 

CSS 佈局與傳統表(table)佈局最大的區別在於原來的定位都是採用表格通過表格的間距或者用無色透明的 GIF 圖片來 控制文佈局版塊的間距;而現在則採用(div)來定位,通過層的 margin,padding,border 等屬性來控制版塊的間距。

1. DIV

 

分析一個典型的定義 div 例子:

#sample{ MARGIN: 10px 10px 10px 10px; PADDING:20px 10px 10px 20px;

BORDER-TOP: #CCC 2px solid;

 

BORDER-RIGHT: #CCC 2px solid; BORDER-BOTTOM: #CCC 2px solid; BORDER-LEFT: #CCC 2px solid;

BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom; COLOR: #666;

TEXT-ALIGN: center;

 

LINE-HEIGHT: 150%; WIDTH:60%; }

說明如下:

·      層的名稱爲 sample,在頁面中用 就可以調用這個樣式。

·      MARGIN 是指層的邊框以外留的空白,用於頁邊距或者與其它層製造一個間距"10px 10px 10px 10px"分別代"上 右下"(順時針方)四個邊距如果都一樣可以縮寫"MARGIN: 10px;"果邊距爲零要寫"MARGIN: 0px;"

 

 

15


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

注意當值是零時除了 RGB 顏色值 0%必須跟百分號其他情況後面可以不跟單"px"MARGIN 是透明元素不能

定義顏色。

·      PADDING 是指層的邊框到層的內容之間的空白margin 一樣分別指定上右下左邊框到內容的距離如果都一樣, 可以縮寫"PADDING:0px"。單獨指定左邊可以寫"PADDING-LEFT: 0px;"PADDING 是透明元素,不能定義顏色。

·      BORDER 是指層的邊框"BORDER-RIGHT: #CCC 2px solid;"是定義層的右邊框顏色"#CCC",寬度"2px",樣式爲

"solid"直線。如果要虛線樣式可以"dotted"

·      BACKGROUND 是定義層的背景。分 2 級定義,先定義圖片背景,採"url(../images/bg_logo.gif)"來指定背景圖片 路徑其次定義背景"#FEFEFE""no-repeat"指背景圖片不需要重複如果需要橫向重複"repeat-x",縱向重複 用"repeat-y",重複鋪滿整個背景"repeat"。後面"right bottom;"是指背景圖片從下角開始。如果沒有背景

圖片可以只定義背景色 BACKGROUND: #FEFEFE

·      COLOR 用於定義字體顏色,上一節已經介紹過。

·      TEXT-ALIGN 用來定義層中的內容排列方式center 居中,left ,right 居右。

·      LINE-HEIGHT 定義行高150%是指高度爲標準高度的 150%也可以寫作LINE-HEIGHT:1.5 或者 LINE-HEIGHT:1.5em, 都是一樣的意思。

·      WIDTH 是定義層的寬度可以採用固定值例如 500px也可以採用百分比象這裏"60%"要注意的:這個寬度 僅僅指你內容的寬度,不包含 margin,border padding。但在有些瀏覽器中不是這麼定義的,需要你多試試。

下面是這個層的實際表: 這裏是演示內容,這裏是演示內容,這裏是演示內容,這裏是演示內容,這裏是演示容,這裏是演示內容,這裏是演示內 容,這裏是演示內容,

這裏是演示容,這裏是演示內容,這裏是演示內容,這裏是演示內容, 這裏是演示內...

我們可以看到邊框是 2px 的灰色背景圖片在右下沒有重複內容距離上和左邊框 20px內容居中一切和預想的一樣hoho, 雖然不好看但它是最基本的掌握了它你就已經學會一半的 CSS 佈局技術了就是這不算難吧(另一半是什麼?另 一半是層與層之間的定位。我會在後面逐步講解)

2.CSS2 盒模型

 

自從 1996 CSS1 的推出W3C 組織就建議把所有網頁上的對像都放在一個(box)設計師可以通過創建定義來控制這個 盒的屬性這些對像包括段落、列表、標題、圖片以及層

盒模型主要定義四個區域(content)邊框(padding)邊界(border)和邊距(margin)上面我們講的 sample 層就 是一個典型的盒對於初學者經常會搞不清楚 marginbackground-colorbackground-imagepaddingcontentborder 之間的層次、關係和相互影響。這裏提供一張盒模型的 3D 示意圖,希望便於你的理解和記憶。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

 

3.用背處理

 

XHTML+CSS 佈局,有一個技術一開始讓你不習慣,應該說是一種思維方式與傳統表格佈局不一樣,那就是:所有輔助圖片都用背景來實現。類似這樣:

BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom;

 

 

儘管可以用     直接插在內容中,但這是不推薦的這裏"輔助圖"是指那些不是作頁面要表達的內容一部分,而僅僅用於修飾、間隔、提醒的圖片。例如:相冊中的圖片、圖片新聞中的圖片,上面的 3d 盒模型圖片都屬於內容的一部分,

 

 

它們可以用     元素直接插在頁面裏,而其它的類似 logo,標題圖片,列表前綴圖片都必須採用背景方式或者其他 CSS 方 式顯示。

這樣做的原因有 2 點:

·      將表現與結構徹底相分(參考閱讀另一篇文章理解表現與結構相分)CSS 控制所有的外觀表現便於改 版。

·      使頁面更具有易用性,更有親和。例如:盲人使用屏幕閱讀機,用背景技術實現的圖片就不會被朗讀出來。

 

 

 

DIV+CSS 9 : CSS 實例

 

接下來開始要真正設計佈局了。和傳統的方法一樣,你首先要在腦海裏有大致的輪廓構想,然後用 photoshop 把它畫出來。 你可能看到有關 web 標準的站點大都很樸素,因爲 web 標準更關注結構和內容,實際上它與網頁的美觀沒有根本衝突,你想 怎麼設計就怎麼設計,用傳統表格方法實現的佈局,用 DIV 也可以實現。技術有一個成熟的過程,把 DIV TABLE 一樣 的工具,如何運用就看你的想象力了。

 

 

 

17


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

注:在實際應用過程中DIV 在有些地方的確不如表格方便,比如背景色的定義。但任事情都有得有失,取捨在於你的價

值判斷。好,不羅嗦了,我們開始:

1.佈局

 

w3cn 的最初設計草圖如下:

 

 

 

 

 

 

 

 

用表格的設計方法的話,一般都是上中下三行。用 DIV 的話,我考慮使用三列來布,成爲

 

2. body 樣式 先定義整個頁面的 body 的樣,代碼如下: body { MARGIN: 0px;

PADDING: 0px;

BACKGROUND: url(../images/bg_logo.gif) #FEFEFE no-repeat right bottom;

FONT-FAMILY: 'Lucida Grande','Lucida Sans Unicode','宋體','新宋',arial,verdana,sans-serif; COLOR: #666;

FONT-SIZE:12px;

 

LINE-HEIGHT:150%; }

以上代碼的作用在上一天的教程有詳細說明,大家應該一看就明白。定義了邊框邊距爲 0;背景顏色#FEFEFE,背景圖片爲

bg_logo.gif,圖片位於頁面右下角,不重複;定義了字體尺寸爲 12px;字體顏色#666;行高 150%

3. div

 

初次使用 CSS 佈局,我決定採用固定寬度的三列布(比自適應分辨率的設計簡,hoho,別說我偷懶,先實現簡單的,增加點信心嘛)。分別定義左中右的寬度爲 200:300:280,在 CSS 中如下定:

 

 

/*定義頁面左列樣*/

 

#left{ WIDTH:200px; MARGIN: 0px; PADDING: 0px;

BACKGROUND: #CDCDCD;

 

}

/*定義頁中列樣*/

 

#middle{ POSITION: absolute; LEFT:200px;

 

18


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

TOP:0px;

 

WIDTH:300px; MARGIN: 0px; PADDING: 0px;

BACKGROUND: #DADADA;

 

}

/*定義頁面右列樣*/

 

#right{ POSITION: absolute; LEFT:500px;

TOP:0px; WIDTH:280px; MARGIN: 0px; PADDING: 0px;

BACKGROUND: #FFF; }

注意定義中列和右列 div 我都採用了 POSITION: absolute;然後分別定義了 LEFT:200px;TOP:0px;LEFT:500px;TOP:0px;

這是這個佈局的關鍵我採用了層的絕對定位定義中間列距離頁面左邊框 200px距離頂部 0px定義右列距離頁面左邊框

500px,距離頂部 0px;。 這時候整個頁面的代碼是:

<!DOCTYPE             html                 PUBLIC               "-//W3C//DTD                 XHTML               1.0                 Transitional//EN"

 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312">

 

<head>

<title>歡迎進入新《網頁設計師:web 標準教程及推</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

 

<meta http-equiv="Content-Language" content="gb2312" />

 

<meta content="all" name="robots" />

<meta name="author" content="ajie(at)netease.com," />

<meta name="Copyright" content="www.w3cn.org,自由版,任意轉" />

<meta name="description" content="新網頁設計,web 標準的教程站,推動 web 標準在中國的應." />

<meta content="web 標準,,web, standards, xhtml, css, usability, accessibility" name="keywords" />

 

<link rel="icon" href="/favicon.ico" type="image/x-icon" />

 

<link rel="shortcut icon" href="http://www.w3cn.org/favicon.ico" type="image/x-icon" />

 

<link rel="stylesheet" rev="stylesheet" href="css/style01.css" type="text/css" media="all" />

</head>

 

<body>

<div id="left">頁面左</div>

<div id="middle">頁面中</div>

<div id="right">頁面右</div>

</body>

 

</html>

這時候頁面的效果僅僅可以看到三個並列的灰色矩形,和一個背景圖。但是我希望高度是滿屏的,怎麼辦呢?

 

 

 

 

 

 

19


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

4.100%自適應?

 

爲了保持三列有同樣的高度我嘗試#left#middle #right 中設置"height:100%;"但發現完全沒有預想的自適應高度 效果。經過一番嘗試後,我只好給每個 div 一個絕對高:"height:1000px;",並且隨着內容的增加,需要不斷修正這個值。難道沒有辦法自適應高度了嗎?隨着阿捷自己學習的深入,發現一個變通的解決辦法,實際上根本不需要設置 100%,我們已 經被 table 思維禁錮太深了,這個辦法在下一節的學習中詳細介紹。

 

DIV+CSS 10 :高度

 

如果我們想在 3 列布局的最後加一行頁腳,放版權之類的信息。就遇到必須對齊 3 列底部的table 佈局中,我們用 大表格嵌套小表格的方法,可以很方便對齊三列;而用 div 佈局,三列獨立分散,內容高低不同,就很難對齊。其實我們完 全可以嵌套 div,把三列放進一個 DIV 中,就做到了底部對齊。下面是實現例(白色背景框模擬一個頁)

Body

這裏是#header{ MARGIN: 0px; BORDER: 0px; BACKGROUND: #ccd2de; WIDTH: 580px; HEIGHT: 60px;}

這裏是#mainbox { MARGIN: 0px; WIDTH: 580px; BACKGROUND: #FFF; }包含#menu,#sidebar #content

這裏是#menu{ FLOAT: right; MARGIN: 2px 0px 2px 0px; PADDING:0px 0px 0px 0px; WIDTH: 400px; BACKGROUND: #ccd2de; }

這裏是#sidebar{ FLOAT: left; MARGIN: 2px 2px 0px 0px; PADDING: 0px; BACKGROUND: #F2F3F7; WIDTH: 170px; },背

景顏色用的#main 的背景色

這裏是#content{ FLOAT: right; MARGIN: 1px 0px 2px 0px; PADDING:0px; WIDTH: 400px; BACKGROUND: #E0EFDE;}

這裏是主要內容,根據內容自動適應高度

這裏是主要內容,根據內容自動適應高度

這裏是主要內容,根據內容自動適應高度

這裏是#footer{ CLEAR: both; MARGIN: 0px 0px 0px 0px; PADDING: 5px 0px 5px 0px; BACKGROUND: #ccd2de; HEIGHT: 40px;

WIDTH: 580px; }。 這個例子的頁面主要代碼如下:

<div id="header"></div>

 

<div id="mainbox">

 

<div id="menu"></div>

 

<div id="sidebar"></div>

<div id="content"></div>

 

</div>

 

<div id="footer"></div>

具體樣式表都寫在相應版塊裏了重點在#mainbox 層嵌#menu,#sidebar #content 三個層#content 的內容增加,

#content 的高度就會增高,同#mainbox 的高度也會撐開#footer 層就自動下移。這樣就實現了高度的自適應。 另外值得注的是#menu #content 是浮動在面右"FLOAT: right;",#sidebar #menu 的左"FLOAT: left;",這是浮動法定位,還可以採用絕對定位來實現這樣的效果。

這個方法存在另一個問題,就是側#sidebar 的背景無法百分之百。一般的解決法就是用 body 的背景色來填充滿(不能 使用#mainbox 的背景色,因爲在 Mozilla 等瀏覽器#mainbox 的背景色失效) 好了,主要的框架已經搭建完,剩下的工作只是往裏面添磚加瓦。如果你希望嘗試其他佈局,推薦看看以下文:

·      CSS 佈局 16

·      onestab:三欄複合佈局演示

·      onestab:自由伸展的三欄式版面

Tips:[onestab "P.I.E"] 還有更多精介紹,推薦去看看。

 

 

 

20


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

 DIV+CSS 11 :菜單

 

佈局初步搭建起來,我開始填充裏面的內容。首先是定義 logo 圖片: 樣式表#logo {MARGIN: 0px;padding:0px;WIDTH: 200px;HEIGHT:80px;}

頁面代碼<div id="logo"><a title="網頁設計" href="http://www.w3cn.org/" ><img height="80" alt="鏈接到 w3cn.org

首頁" src="images/logo_w3cn_200x80.gif" width="200" /></a></div>

以上代碼現在應該容易理解先在 CSS 定義了一個 logo 的層然後在頁面中調用它需要說明的是爲了使網頁有更好的易 用性,web 標準要求大家給所有的、屬於正式內容的圖片,加一個 alt 屬性。這個 alt 屬性是用來說明圖片的作(當圖片不 能顯示的時候就顯示替換文),所以不要只寫成無意義的圖片名稱。

接下來是定義菜單。

1.()

 

我們先來看菜單的最終效果:

·                      什麼是網站標準

·                      使用標準的好處

·                      怎樣過渡

·                      相關教程

·                      工具

·                      資源及鏈接

通常方法我們至少嵌套 2 層表格來實現這樣的菜單間隔線採用在 td 中設置背景色並插入 1px 高的透明 GIF 圖片實現背景 色的交替效果採用 td onmouseover 事件實現。但查看本菜單的頁面代碼,你會看到只有如下幾句:

<div id="menu">

 

<ul>

<li><a title="網站標" href="http://www.w3cn.org/webstandards.html">什麼是網站標</a></li>

<li><a title="標準的好" href="http://www.w3cn.org/benefits.html">使用標準的好</a></li>

<li><a title="怎樣過" href="http://www.w3cn.org/howto.html">怎樣過</a></li>

<li><a title="相關教" href="http://www.w3cn.org/tutorial.html">相關教</a></li>

<li><a title="" href="http://www.w3cn.org/tools.html">工具</a></li>

<li><a title="資源及鏈" href="http://www.w3cn.org/resources.html">資源及鏈</a></li>

 

</ul>

 

</div>

沒有用任何 table,而用的是無序<li>整個菜單的效果實現的祕密完全在於 id="menu"我們再來看 CSS 中關於 menu 的定 義:

(1)首先定義了 menu 層的主要樣:

 

#menu {

MARGIN: 15px 20px 0px 15px;  /*定義層的外邊框距*/ PADDING:15px;    /*定義層的內邊框爲 15px*/ BACKGROUND: #dfdfdf;                                  /*定義背景顏*/

COLOR: #666;     /*定義字體顏*/

BORDER:#fff 2px solid;  /*定義邊框爲 2px 白色線*/ WIDTH:160px;                                /*定義內容的寬度爲 160px*/

}

(2)其次定義無序列表的樣式:

#menu ul {

 

21


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

MARGIN: 0px;

 

PADDING: 0px;

BORDER: medium none; /*不顯示邊*/ LINE-HEIGHT: normal;

LIST-STYLE-TYPE: none;

 

 

}

 

#menu li {BORDER-TOP: #FFF 1px solid; MARGIN: 0px;}

說明:這裏用的是 id 選擇器的派生方法定(參考第 7 CSS 入門的介)menu 層中的子元<ul><li>的樣式。

LIST-STYLE-TYPE: none 一句表示不採用無序列表的默認樣式,即:不顯示小圓點(我們後面用自己的圖標來代替小圓點)。

BORDER-TOP: #FFF 1px solid;則定義了菜單之間的 1px 間隔線。

(3)定義 onmouseover 效果

 

#menu li a {

PADDING:5px 0px 5px 15px; DISPLAY: block;

FONT-WEIGHT: bold;

 

BACKGROUND: url(images/icon_dot_lmenu.gif) transparent no-repeat 2px 8px; WIDTH: 100%;

COLOR: #444;

 

TEXT-DECORATION: none;

 

}

 

#menu li a:hover { BACKGROUND: url(images/icon_dot_lmenu2.gif) #C61C18 no-repeat 2px 8px; COLOR: #fff; }

解釋如下:

·      "display:block;"表示將標籤 a 當作塊級元素來顯示,使得鏈接變成一個按鈕;

·      "BACKGROUND: url(images/icon_dot_lmenu.gif) transparent no-repeat 2px 8px;"這一句定義了替代 li 的小圓 點的圖標"transparent"指背景爲透明"2px 8px"指定圖標的位置是距左邊 2px,距上邊 8px。這一句也可以拆分

"BACKGROUND-IMAGE:  url(images/icon_dot_lmenu.gif);  BACKGROUND-POSITION:  2px  8px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: transparent;"

·      "#menu li a:hover"定義了當鼠標移動到鏈接上以後的顏色變化和小圖標變化。

ok不用表格的菜單就這樣實現了大家可以明顯感覺到原來寫在 HTML 裏的表現樣式全部剝離放到 CSS 文件裏去了頁面 代碼節約了大半。通過 CSS 要修改菜單樣式就很簡單了。

2.()

 

上面是縱向的菜,如果要顯示橫向菜單,用 li 也可以嗎?當然是可以的,下面給出代碼,效果就在本頁頂:

頁面代碼

 

<div id="submenu">

 

<ul>

<li id="one"><a title="" href="http://www.w3cn.org/">Home</a></li>

<li id="two"><a title="關於我" href="http://www.w3cn.org/aboutus.html">關於我們</a></li>

<li id="three"><a title="網站標準" href="http://www.w3cn.org/webstandards.html">網站標</a></li>

<li id="four"><a title="標準的好" href="http://www.w3cn.org/benefits.html">標準的好</a></li>

<li id="five"><a title="怎樣過" href="http://www.w3cn.org/howto.html">怎樣過</a></li>

<li id="six"><a title="相關教" href="http://www.w3cn.org/tutorial.html">相關教</a></li>

 

 

22


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

<li id="seven"><a title="工具" href="http://www.w3cn.org/tools.html">工具</a></li>

<li id="eight"><a title="資源及鏈" href="http://www.w3cn.org/resources.html">資源及鏈</a></li>

<li id="nine"><a title="常見問" href="http://www.w3cn.org/faq.html">常見問</a></li>

</ul>

 

</div>

樣式表代碼

 

#submenu {

 

MARGIN: 0px 8px 0px 8px; PADDING: 4px 0px 0px 0px; BORDER: #fff 1px solid; BACKGROUND: #dfdfdf; COLOR: #666;

HEIGHT:25px; }

 

 

#submenu ul { CLEAR: left; MARGIN: 0px; PADDING:0px; BORDER: 0px;

LIST-STYLE-TYPE: none; TEXT-ALIGN: center; DISPLAY:inline;

}

 

 

#submenu li { FLOAT: left; DISPLAY: block; MARGIN: 0px; PADDING: 0px;

TEXT-ALIGN: center}

 

 

#submenu li a { DISPLAY: block;

PADDING:2px 3px 2px 3px;

 

BACKGROUND: url(images/icon_dot_lmenu.gif) transparent no-repeat 2px 8px; FONT-WEIGHT: bold;

WIDTH: 100%;

 

COLOR: #444;

TEXT-DECORATION: none;

 

}

 

 

#submenu li a:hover {

 

BACKGROUND: url(images/icon_dot_lmenu2.gif) #C61C18 no-repeat 2px 8px; COLOR: #fff; }

 

23


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

 

#submenu ul li#one A { WIDTH: 60px}

 

#submenu ul li#two A { WIDTH: 80px}

#submenu ul li#three A { WIDTH: 80px}

 

#submenu ul li#four A { WIDTH: 90px}

 

#submenu ul li#five A { WIDTH: 80px}

 

#submenu ul li#six A { WIDTH: 80px}

 

#submenu ul li#seven A { WIDTH: 60px}

#submenu ul li#eight A { WIDTH: 90px}

 

#submenu ul li#nine A { WIDTH: 80px}

以上代碼不逐一分析了橫向菜單的關鍵在於<li>樣式時"FLOAT: left;"語句另外注意 UL 定義中的 DISPLAY:inline; 一句表示將 li 強制作爲內聯對象呈遞,從對象中刪除行,通俗講就是 li 不換行。實現橫向排列。你也可以象例子中定義每個子菜單的寬度,控制菜單的間隔。好了,你也可以動手試試,用 li 實現各種各樣的菜單樣式。 Tips:如果你子菜單的寬度總和大於層的寬度,菜單會自動折行,利用這個原理可以實現單個無序列表的 2 列或者 3 列排版, 這是原來 HTML 很難實現的。

感謝 zhuweiwei 指出橫向菜單的 bug,本文 7 6 日修正。

 

 

DIV+CSS 12 :錯誤

 

辛苦了好多天我們努力學習使用 XHTML+CSS 來重新設計我們的網站那麼我們如何知道自己製作的頁面真的符合 web 標準?

W3C 和一些志願者網站提供了在線校驗程序,來幫助我們檢查頁面是否符合標準,並提了修正錯誤的幫助信息。這些校驗 非常有用,是我調試頁面第一步要做的事情。

1.XHTML 校驗

 

·      校驗網址http://validator.w3.org/

·      校驗方:網址校驗、文件上傳校驗

校驗成功,會顯"This Page Is Valid XHTML 1.0 Transitional!",如圖:

 

校驗失敗,會顯示更多校驗選項和錯誤信息,如圖:

 

 

一般選"Show Source""Verbose Output"可以幫助你找到誤代碼所在行和錯誤原因。

 

 

 

24


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

XHTML 校驗常錯誤原對照表

 

·      No DOCTYPE Found! Falling Back to HTML 4.01 Transitional--未定義 DOCTYPE

·      No Character Encoding Found! Falling back to UTF-8.--未定義語言編碼。

·      end tag for "img" omitted, but OMITTAG NO was specified--圖片標籤沒有"/"關閉。

·      an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified--

屬性值必須加引號。

·      element "DIV" undefined---DIV 標籤不能用大寫,要改成小寫 div

·      required attribute "alt" not specified---圖片需要加 alt 屬性。

·      required attribute "type" not specified---JS 或者 CSS 調用的標籤漏了 type 性。 其中最最常見的錯誤就是標籤的大小寫問題了通常這些錯誤都是關聯的比如忘記了一</li><li>標籤都會報錯所以不要看到一堆的錯誤害怕通常解決了一個錯誤其他的錯誤也都沒有了如果你的頁面通過 XHTML1.0 校驗可以在頁面

上放置這麼一個圖標: 代碼如下:

 

<p>      <a       href="http://validator.w3.org/check/referer"><img                   src="http://www.w3.org/Icons/valid-xhtml10"

 

alt="Valid XHTML 1.0!" height="31" width="88" /></a> </p>

2.CSS2 校驗

 

·      校驗網址http://jigsaw.w3.org/css-validator/

·      校驗方:網址校驗、文件上傳校驗、直接貼入代碼校驗校驗成功,會顯"恭喜恭喜,此文檔已經通過樣式表校! ",hoho,校驗信息支持中文噢。如圖:

 

 

 

 

校驗失敗會顯示兩類錯誤錯誤和警告錯誤表示一定要修正否則無法通過校驗警告表示有代碼不被 W3C 推薦,建議修 改。

CSS2 校驗見錯誤因對照表

 

·      ()無效數字 : color909090 不是一個 color : 909090 ---十六進制顏色值必須"#"號,#909090

·      ()無效數字 : margin-topUnknown dimension : 6pixels ---pixels 不是一個單位值,正確寫法 6px

·      ()屬性 scrollbar-face-color 不存在 : #eeeeee --- 定義滾動條顏色是非標準的屬性

·      ()cursorhand 不存在 : hand 是非標準屬性值,修改爲 cursor:pointer

·      ()Line : 0 font-family: 建議你指定一個種類族科作爲最後的選擇 --W3C 建議字體定義的時候,最後以一個 類別的字體結束,例"sans-serif",以保證在不同操作系統下,頁字體都能被顯示。

·      ()Line : 0 can't find the warning message for otherprofile --表示在代碼中有非標準屬性或值,校驗程 序無法判斷和提供相應的警告信息。

同樣,通過檢驗後,可以放置一個 CSS 校驗通過圖標,代碼如下:

 

<p>        <a        href="http://jigsaw.w3.org/css-validator/">                    <img        style="border:0;width:88px;height:31px"

 

src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" /> </a> </p>

 

 

CSS 技巧

 

最近,經常有朋友問我一些工作中遇到的 CSS 問題。他們總是不能很好的控制 CSS,影響 CSS 的效率發揮。我來分析總結一下 錯誤所在,幫助大家更加容易使用 CSS

 

 

 

25


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

本文總結了我開始使用 CSS 佈局方法以來所有的技巧和兼容方案,我願意把這些與你分享,我會重點解釋一些新手容易犯的

錯誤(包括我自己也犯過)如果你已經是 CSS 高手這些經驗技巧可能已經都知道如果你有更多的望可以幫我補充。

 

.使 css 縮寫

 

使用縮寫可以幫助減少你 CSS 文件的大小,更加容易閱讀css 縮寫的主要規則請參看常用 css 縮寫語法總》,這裏就 不展開描述。

.定義單,除非 0

 

忘記定義尺寸的單位是 CSS 新手普遍的錯誤HTML 中你可以只寫 width="100"但是在 CSS 你必須給一個準確的單位, 比如:width:100px width:100em。只有兩個例外情況可以不定義單位:行高和 0 值。除此以外,其他值都必須緊跟單位,注意,不要在數值和單位之間加空格。

.大小寫

 

當在 XHTML 中使用 CSSCSS 裏定義的元素名稱是區分大小寫的。爲了避免這種錯誤,我建議所有的定義名稱都採用小寫。 class id 的值在 HTML XHTML 中也是區分大小寫的,如果你一定要大小寫混合寫,請仔細確認CSS 的定義和 XHTML 裏的標籤是一致的。

. class id 元素限定

 

當你寫給一個元素定義 class 或者 id,你可以省略前面的元素限定,因爲 ID 在一個頁面裏是唯一的,而 clas s 可以在頁面 中多次使用。你限定某個元素毫無意義。例如:

div#content { /* declarations */ }

 

fieldset.details { /* declarations */ }

可以寫成

#content { /* declarations */ }

 

.details { /* declarations */ }

這樣可以節省一些字節。

 

.

 

通常 padding 的默認值爲 0background-color 的默認值是 transparent。但是在不同的瀏覽器默認值可能不同。如果怕有 衝突,可以在樣式表一開始就先定義所有元素的 margin padding 值都爲 0,象這樣:

* { margin:0; padding:0;

}

 

.要重複義可繼的值

 

CSS 中,子元素自動繼承父元素的屬性值,象顏色、字體等,已經在父元素中定義過的在子元素中可以直接繼承,不需要 重複定義。但是要注意,瀏覽器可能用一些默認值覆蓋你的定義。

.優先原則 如果對同一個元素的定義有多種,以最接(最小一)的定義爲最優先,例如有這麼一段代碼 Update: Lorem ipsum dolor set

CSS 文件中,你已經定義了元素 p,又定義了一個 class"update"

p {

 

 

26


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

margin:1em 0;

 

font-size:1em;

 

color:#333;

}

 

.update {

 

font-weight:bold;

 

color:#600;

 

}

這兩個定義中class="update"將被使用因爲 class p 更近你可以查閱 W3C 《 Calculating a selector’s specificity》 瞭解更多。

. class 定義

 

一個標籤可以同時定義多個 class。例如:我們先定義兩個樣式,第一個樣式背景#666;第二個樣式有 10 px 的邊框。

.one{width:200px;background:#666;}

 

.two{border:10px solid #F00;}

在頁面代碼中,我們可以這樣調用

 

<div class="one two"></div>

這樣最終的顯示效果是這個 div 既有#666 的背景,也有 10px 的邊框。是的,這樣做是可以的,你可以嘗試一下。

.使子選擇(descendant selectors)

 

CSS 初學者不知道使用子選擇器是影響他們效率的原因之一。子選擇器可以幫助你節約大量的 class 定義。我們來看下面這 段代碼:

<div id="subnav">

<ul>

 

<li class="subnavitem"> <a href="#" class="subnavitem">Item 1</a></li>>

 

<li class="subnavitemselected"> <a href="#" class="subnavitemselected"> Item 1</a> </li>

 

<li class="subnavitem"> <a href="#" class="subnavitem"> Item 1</a> </li>

 

</ul>

</div>

這段代碼的 CSS 定義是:

 

div#subnav ul { /* Some styling */ }

 

div#subnav ul li.subnavitem { /* Some styling */ }

 

div#subnav ul li.subnavitem a.subnavitem { /* Some styling */ }

div#subnav ul li.subnavitemselected { /* Some styling */ }

 

div#subnav ul li.subnavitemselected a.subnavitemselected { /* Some styling */ }

你可以用下面的方法替代上面的代碼

 

<ul id="subnav">

 

<li> <a href="#"> Item 1</a> </li>

<li class="sel"> <a href="#"> Item 1</a> </li>

 

<li> <a href="#"> Item 1</a> </li>

 

</ul>

樣式定義是:

 

#subnav { /* Some styling */ }

#subnav li { /* Some styling */ }

 

 

27


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

#subnav a { /* Some styling */ }

 

#subnav .sel { /* Some styling */ }

 

#subnav .sel a { /* Some styling */ }

用子選擇器可以使你的代碼和 CSS 更加簡潔、更加容易閱讀。 .要給背圖片路加引號 爲了節省字節,我建議不要給背景圖片路徑加引號,因爲引號不是必須的。例如: background:url("images/***.gif") #333;

可以寫爲

 

background:url(images/***.gif) #333;

如果你加了引號,反而會引起一些瀏覽器的錯誤。

 

.選擇(Group selectors)

 

當一些元素類型class 或者 id 都有共同的一些屬性你就可以使用組選擇器來避免多次的重複定義這可以節省不少字節。 例如:定義所有標題的字體、顏色和 margin,你可以這樣寫:

h1,h2,h3,h4,h5,h6 {

 

font-family:"Lucida Grande",Lucida,Arial,Helvetica,sans-serif;

 

color:#333;

margin:1em 0;

 

}

如果在使用時,有個別元素需要定義獨立樣式,你可以再加上新的定義,可以覆蓋老的定義,例如:

 

h1 { font-size:2em; }

 

h2 { font-size:1.6em; }

.正確的序指定接的樣式

 

當你用 CSS 來定義鏈接的多個狀態樣式時,要注意它們書寫的順序,正確的順序是:link :visited :hover :active。抽取 第一個字母"LVHA"你可以記憶"LoVe HAte"(喜歡討)爲什麼這麼定義可以參考 Eric Meyer Link Specificity》。 如果你的用戶需要用鍵盤來控制需要知道當前鏈接的你還可以定:focus 屬性:focus 屬性的效果也取決與你書寫 的位置,如果你希望聚焦元素顯:hover 效果,你就:focus 寫在:hover 面;如果你希望聚焦效果替:hover 效果,你 就把:focus :hover 後面。

.除浮動

 

一個非常常見的 CSS 問題,定位使用浮動的時候,下面的層被浮動的層所覆蓋,或者層裏嵌套的子層超出了外層的範圍。通常的解決辦法是在浮動層後面添加一個額外元素,例如一個 div 或者一個 br,並且定義它的樣式爲 clear: both。這個辦 法有一點牽強,幸運的是有一個好辦法可以解決,參看這篇文章How To Clear Floats Without Structural Markup(注: 本站將盡快翻譯此)

上面 2 種方法可以很好解決浮動超出的問題,但是如果當你真的需要對層或者層裏的對象clear 的時候怎麼辦?一種簡 單的方法就是用 overflow 屬性這個方法最初的發表Simple Clearing of Floats》,Clearance》和Super simple clearing floats》中被廣泛討論。

上面那一種 clear 方法更適合你,要看具體的情況,這裏不再展開論述。另外float 的應用,一些優秀的文章已經說得 很清楚,推薦你閱讀:Floatutorial》、Containing Floats》和《Float Layouts

 

 

 

 

 

 

28


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

.向居(centering)

 

這是一個簡單的技巧,但是值得再說一遍,因爲我看見太多的新手問題都是問這個CSS 如何橫向居中?你需要定義元素的 寬,並且定義橫向的 margin,如果你的佈局包含在個層(容器)中,就象這樣:

你可以這樣定義使它橫向居中:

 

#wrap {

width:760px; /* 修改爲你的層的寬度 */

 

margin:0 auto;

}

但是 IE5/Win 不能正確顯示這個定義,我們採用一個非常有用的技巧來解決:用 text-align 屬性。就象這樣:

 

body {

 

text-align:center;

 

}

#wrap {

width:760px; /* 修改爲你的層的寬度 */

 

margin:0 auto;

 

text-align:left;

 

}

第一個 body text-align:center; 規則定義 IE5/Win body 的所有元素居(其他瀏覽只是將文字居) ,第二個

text-align:left;#warp 中的文字居左。

 

.(Import)和隱藏 CSS

 

因爲老版本瀏覽器不支持 CSS,一個通常的做法是使@import 技巧來把 CSS 隱藏起來。例如:

@import url("main.css");

然而,這個方法對 IE4 不起作用,這讓我很是頭疼了一陣子。後來我用這樣的寫法:

 

@import "main.css";

這樣就可以在 IE4 中也隱藏 CSS 呵呵還節省了 5 個字節呢想了@import 語法的詳細說明可以看這centricle’s

css filter chart

. IE 的優化

 

有些時候,你需要對 IE 瀏覽器的 bug 定義一些特別的規則,這裏有太CSS 技巧(hacks),我只使用其中的兩種方法,不 管微軟在即將發佈的 IE7 beta 版裏是否更好的支持 CSS,這兩種方法都是最安全的。

·      1.註釋的方法

o     (a)IE 中隱藏一個 CSS 定義,你可以使用子選擇(child selector):

html>body p {

/* 定義內容 */

 

}

o     (b)下面這個寫法只有 IE 瀏覽器可以理(對其他瀏覽器都隱)

* html p {

 

/* declarations */

 

}

o     (c)還有些時候,你希望 IE/Win 有效而 IE/Mac 隱藏,你可以使"反斜線"技巧:

/* \*/

* html p {

 

 

29


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

declarations

 

}

 

/* */

·      2.條件注(conditional comments)的方法

另外一種方法,我認爲比 CSS Hacks 更加經得起考驗就是採用微軟的私有屬性條件注(conditional comments)。 用這個方法你可以給 IE 單獨定義一些樣式,而不影響主樣式表的定義。就象這樣:

<!--[if IE]>

 

<link rel="stylesheet" type="text/css" href="ie.css" />

<![endif]-->

 

.調試技巧層有多

 

當調試 CSS 發生錯誤,你就要象排版工人,逐行分析 CSS 代碼。我通常在出問題的上定義一個背景顏色,這樣就能很明顯 看到層佔據多大空間有些人建議用 border一般情況也是可以的但問題有時候 border 會增加元素的尺寸border-top

boeder-bottom 會破壞縱向 margin 的值,所以使用 background 更加安全些。

另外一個經常出問題的屬性是 outlineoutline 看起來象 boeder,但不會影響元素的尺寸或者位置。只有少數瀏覽器支持

outline 屬性,我所知道的只有 SafariOmniWeb、和 Opera

 

.CSS 碼書寫

 

在寫 CSS 代碼的時候,對於縮進、斷行、空格,每個人有每個人的書寫習慣。在經過不斷實踐後,我決定採用下面這樣的書寫樣式:

selector1, selector2 { property:value;

}

當使用聯合定義時我通常將每個選擇器單獨寫一行這樣方便在 CSS 文件中找到它們在最後一個選擇器和大括{之間加 一個空格,每個定義也單獨寫一行,分號直接在屬性值後,不要加空格。 我習慣在每個屬性值後面都加分號,雖然規則上允許最後一個屬性值後面可以不寫分,但是如果你要加新樣式時容易忘記 補上分號而產生錯誤,所以還都加比較好。

最後,關閉的大括}單獨寫一行。

 

 

WEB 教程

 

Web 開發的人員一定都會面臨一個共同的難題,那就是打印。的確,相對於 Windows 桌面應用程序來講Web 應用程序 的打印有種種限制,技術人員在項目開發過程中經常會遇到用戶這樣或那樣的需. 過桌面應用開發的人都會非常熟悉水 晶報表Active Report 之類的報表控件,它們不僅有簡單靈活的設計界面,更具有非常大的報表功能,能滿足各種報表 的打印需求。而 Web 應用則因爲其特殊的呈現方式,只能尋求其他的解決方案。現在我們來分析一下目前經成Web 打 印方案:

現有的 Web 打印控制技術分成幾種方案: 一.自定義控件完成打印

利用 IE 自帶的 WebBrowser 控件實現打印

利用第三方控件實現打印

1、自定義控件方式

自定義控件方式就是利用 VB VC 等工具生成 COM 組件,用定義好的打印格式來分析打印源文件從而實現打印。只有 將生成的組件下載並註冊到客戶機上,才能實現在客戶端的

 

30


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

打印。

難點主要是定義打印格式如何來分析打印源文件現有的比較好的方法是利用 XML 技術來全面的解決問題利用 XML 可 以非常容易地定義打印目標的文本、表格等內容的格式。

但對程序員的開發要求高,難度比較大。

2、利用 WebBrowser 實現 Web 打印

WebBrowser IE 內置的瀏覽器控件無需用戶下載本文檔所討論的是有關 IE6.0 版本 的 WebBrowser 控件技術內容。 與其相關的技術要求有:打印文檔的生成、頁面設置、打印操作的實現等幾個環節。

(一)、打印文檔的生成

1、客戶端腳本方式

客戶端腳本分爲 VBScriptJavaScriptJScript 幾種腳本語。在 IE 下開發應用使用的語法爲 JScript 的語法,由 於它和 JavaScript 幾乎沒有什麼區別,所以也可以稱其爲 JavaScript(下面簡JS)。一般情況下,主要使用 JS 來實

DOM 文檔的分析DOM 爲微軟提出的一種 Web 文檔模型,主要用來實現 Web 腳本編程。

利用 JS 可以分析源頁面的內容,將欲打印的頁面元素提取出來,實現打印。通過析源文檔的內容,可以生成打印目 標文檔。

優點:客戶端獨立完成打印目標文檔的生成,減輕服務器負荷;缺點:源文檔的分析操作複雜,並且源文中的打印內容要有約定;

2、服務器端程序方式 服務器端程序方式,主要是利用後臺代碼從數據庫中讀取打印源,生成打印目標檔。當的頁面生成時,還應適當考慮

使用 CSS 來實現強制分頁控制。

優點:可以生成內容非常的豐富的打印目標文檔,目標文檔的內容的可控性強。於打印內容是從數據庫中獲取的,所 以生成操作相對簡單;

缺點:服務器端負載比較大;

(二)、頁面設置 頁面設置主要是指設置打印文檔的頁邊距頁眉頁腳紙張等內容頁面設置將直接影響到打印文檔版面的生成效果,

所以它和打印檔的生成有着密切的關係。比如:表格的 行數、大小、位置、字體的大小等。

現有的技術是利用 IE6.0 內置的打印模板方式來控制頁面設置其可以對打印目標文檔產生非常大的影響打印模板可以控制頁邊距、頁眉、頁腳、奇偶頁等內容,並可以將用戶的設置取得,還可以將設置發送到服務器端。

打印模板技術可以自定預覽窗口和打印格式,最大限度地影響目標文檔和打印效果。

(三)、打印操作的實現

此功能的實現主要是利用 WebBrowser 控件的函數接口來實現打印、打印預覽(默認的)、頁面設置(默的)。

<object ID='WebBrowser1' WIDTH=0 HEIGHT=0

CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'>

//打印

 

WebBrowser1.ExecWB(6,1);

//打印設置

 

WebBrowser1.ExecWB(8,1);

//打印預覽

 

WebBrowser1.ExecWB(7,1);

3、一個實例項目採用的打印方案 服務器端程序方式、打印預覽接口調用,下面爲例, 主要參考項目中的: pageErrorPrint.aspx.vb 文件

主調用頁

 

 

31


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

function PrintPage(iPageIndex,strQuery)

 

{

 

var strURL;

strURL = "PageErrorPrint.aspx?PageIndex=" + iPageIndex + "&QueryString=" +

 

strQuery;

 

winPrint=window.open(strURL,"","left=2000,top=2000,fullscreen=3");

 

}

打印頁 HTML 中的預覽控制

<SCRIPT language="javascript">

 

document.write("<object ID='WebBrowser' WIDTH=0 HEIGHT=0

 

CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"); WebBrowser.ExecWB(7,1);

window.opener=null;

window.close();

 

</SCRIPT>

程序頭

'首先聲明表格容器

 

Protected WithEvents phContainer As System.Web.UI.WebControls.PlaceHolder

'每個表格中的記錄數量

 

Private Const ItemPerTable As Integer = 20

關鍵的實現部分

'創建一個符合打印要求的表格

 

tabPagePrint = NewPrintTable()

'將表頭添加到此表格中

 

Call AddTableTitle(tabPagePrint)

'初始化記錄器

 

i = 0

 

iItemIndex = iStartPoint

For Each clsItem In clsAllData.ErrorCollection

 

If i > 0 And i Mod ItemPerTable = 0 Then

'添加表格控件到頁面中

 

phContainer.Controls.Add(tabPagePrint)

'在頁面中添加一個換行符

Call AddPageBreak()

'創建新一輪的表格

 

tabPagePrint = NewPrintTable() Call AddTableTitle(tabPagePrint) End If

'將記錄添加到表格中

 

Call AddItemToTable(iItemIndex, tabPagePrint, clsItem)

 

iItemIndex = iItemIndex + 1

 

i = i + 1

 

Next

'添加表格控件到頁面中

 

 

32


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

phContainer.Controls.Add(tabPagePrint)

支持函數

'功能:添加頁的換行符

Private Sub AddPageBreak()

 

Dim ltBreak As LiteralControl

 

ltBreak = New LiteralControl("<p style='page-break-before:always'>")

 

phContainer.Controls.Add(ltBreak) End Sub

二、利用 IE 自身打印

這種方式比較簡單也常用的打印方式只需要將報表頁面設計好用戶通過 IE 菜單中的打印功能完成打印優點是簡 單,容易實現,缺點是不靈活,不能控制分頁,不能控制好頁眉和頁腳。

三、將報表導出成 Word,Excel PDF 形式打印

這種方式需要將頁面導出成 Office 文檔或 pdf,最低的要求是客戶端已經安裝用以打開 WordExcel Pdf 文檔的軟件。 這種方式可以通過水晶報表組件或其他一些第三方控件非常容易地實現。導出成 Pdf 形式後打印質量和效果都很好,導出成

Word Excel 後用戶可以自定義打印的內容和格式。 總之現有的打印方案各有所長在開發過程中應根據用戶的需求作選擇利用 IE 打印簡單容易實現在用戶需求簡

單或打印內容較少的情況下采用此方案比較適宜。利用自定義控件打印可以實現完全定義,但需要高的技術要求和開發週期。利用導出的方式則可以滿足用戶需要一點自定義或打印內容有多頁的需求。

-------------------------------------------------------------

1、控制""、橫”和頁面的邊距。

1<script defer>

 

function SetPrintSettings() {

 

// -- advanced features

factory.printing.SetMarginMeasure(2) // measure margins in inches factory.SetPageRange(false, 1, 3) // need pages from 1 to 3 factory.printing.printer = "HP DeskJet 870C" factory.printing.copies = 2

factory.printing.collate = true

factory.printing.paperSize = "A4"

 

factory.printing.paperSource = "Manual feed"

 

// -- basic features factory.printing.header = "This is MeadCo"

factory.printing.footer = "Advanced Printing by ScriptX" factory.printing.portrait = false factory.printing.leftMargin = 1.0 factory.printing.topMargin = 1.0 factory.printing.rightMargin = 1.0 factory.printing.bottomMargin = 1.0

}

 

</script>

2

 

<script language="javascript">

 

function printsetup(){

// 打印頁面設置

 

 

33


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

wb.execwb(8,1);

 

}

 

function printpreview(){

// 打印頁面預覽

 

 

wb.execwb(7,1);

 

 

 

 

}

 

function printit()

 

{

if (confirm('確定打印嗎')) {

 

wb.execwb(6,6)

}

 

}

 

</script>

 

</head>

 

<body>

<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"

 

height=0 id=wb name=wb width=0></OBJECT>

<input type=button name=button_print value="打印"

 

οnclick="javascript:printit()">

<input type=button  name=button_setup value="打印頁面設"

οnclick="javascript:printsetup();">

<input type=button  name=button_show value="打印預"

 

οnclick="javascript:printpreview();">

<input type=button name=button_fh value=""

 

οnclick="javascript:window.close();">

------------------------------------------------ 關於這個組件還有其他的用法,列舉如下: WebBrowser.ExecWB(1,1) 打開

Web.ExecWB(2,1) 關閉現在所有的 IE 窗口,並打開一個新窗口

Web.ExecWB(4,1) 保存網頁 Web.ExecWB(6,1) 打印 Web.ExecWB(7,1) 打印預覽 Web.ExecWB(8,1) 打印頁面設置 Web.ExecWB(10,1) 查看頁面屬性

Web.ExecWB(15,1) 好像是撤銷,有待確認

Web.ExecWB(17,1) 全選 Web.ExecWB(22,1) 刷新 Web.ExecWB(45,1) 關閉窗體無提示

2、分頁打印

 

<HTML>

<HEAD>

 

 

34


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

<STYLE>

 

P {page-break-after: always}

 

</STYLE>

</HEAD>

 

<BODY>

 

<%while not rs.eof%>

 

<P><%=rs(0)%></P>

 

<%rs.movenext%>

<%wend%>

 

</BODY>

 

</HTML>

3ASP 頁面打印時如何去掉頁面底部的路徑和頂端的頁碼編號

1ie 的文-〉頁面設-〉講裏面的頁眉和頁腳裏面的東西都去掉,打印就不出來了。

2<HTML>

 

<HEAD>

 

<TITLE> New Document </TITLE>

 

<META NAME="Generator" CONTENT="EditPlus">

 

<META NAME="Author" CONTENT="YC">

<script language="VBScript">

 

dim hkey_root,hkey_path,hkey_key hkey_root="HKEY_CURRENT_USER" hkey_path="\Software\Microsoft\Internet Explorer\PageSetup"

'//設置網頁打印的頁眉頁腳爲空

function pagesetup_null()

 

on error resume next

 

Set RegWsh = CreateObject("WScript.Shell")

 

hkey_key="\header"

 

RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""

hkey_key="\footer"

 

RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""

 

end function

'//設置網頁打印的頁眉頁腳爲默認值

 

function pagesetup_default()

on error resume next

 

Set RegWsh = CreateObject("WScript.Shell")

 

hkey_key="\header"

RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&w&b 頁碼&p/&P"

 

hkey_key="\footer"

RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d"

 

end function

 

</script>

 

</HEAD>

 

<BODY>

<br/>

 

 

35


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

<br/>

 

<br/>

 

<br/>

<br/>

 

<br/><p align=center>

<input type="button" value=" 清 空 頁 碼 " οnclick=pagesetup_null()> <input type="button" value=" 恢 復 頁 嗎 "

 

οnclick=pagesetup_default()><br/>

 

</p>

</BODY>

 

</HTML>

4、浮動幀打印

 

<SCRIPT LANGUAGE=javascript>

 

function button1_onclick() {

var odoc=window.iframe1.document; var r=odoc.body.createTextRange(); var stxt=r.htmlText;

alert(stxt)

 

var pwin=window.open("","print"); pwin.document.write(stxt); pwin.print();

}

 

</SCRIPT>

4、用 FileSystem 組件實現 WEB 應用中的本地特定打印

<script Language=VBScript>

function print_onclick //打印函數

 

dim label

label=document.printinfo.label.value //獲得 HTML 頁面的數據

set objfs=CreateObject("Scripting.FileSystemObject") //創建 FileSystem 組件對象的實例 set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立與打印機的連接 objprinter.Writeline("__________________________________") //輸出打印的內容

objprinter.Writeline("| |")

objprinter.Writeline("| 您打印的數據是"&label& " |”) objprinter.Writeline("| |") objprinter.Writeline("|_________________________________|")

objprinter.close //斷開與打印機的連接

 

set objprinter=nothing

set objfs=nothing // 關閉 FileSystem 組件

 

end function

</script>

服務器端腳本:

<%„„„

 

set conn=server.CreateObject ("adodb.connection")

 

conn.Open "DSN=name;UID=XXXX;PWD=XXXX;"

set rs=server.CreateObject("adodb.recordset")

 

 

36


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

rs.Open(“select „„”),conn,1,1

„„„.%> //與數據庫進行交互

HTML 頁面編碼:

<HTML>

„„„

 

<FORM ID=printinfo NAME="printinfo" >

<INPUT type="button" value="打印>>" id=print name=print > //調用打印函數

<INPUT type=hidden id=text1 name=label value=<%=„„„%>> //保存服務器端傳來的數據

„„„

 

</HTML>

Div+CSS 程 在CSSHTMLDHTMLXHTML  我們

關於 HTML 定的

HTML 使用 DIV+CSS

 

 

PhotoShop FireWorks(以下簡 PS FW)

 

 

 

 

 

 

37


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

致分

 

 

1 LOGOMENU Banner

2

3。有:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

38


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

 

DIV

body {}    /* HTML 明瞭*/

#Container {}    /*容器*/

#Header {}    /*頭部*/

#PageBody {}    /*頁面主*/

   #Sidebar {}    /*側邊*/

   #MainBody {}    /*主體內*/

#Footer {}    /*底部*/

HTML CSS。接DIV+CSS 佈局練本文

容:

 

 

 

<!DOCTYPE         html          PUBLIC         "-//W 3C//DTD         XHTML          1.0          Transitional//EN"

 

 

"http://www .w 3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

 

<html xmlns="http://www .w 3.org/1999/xhtml">

 

 

<head>

 

 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

 

 

39


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

<title>無標題文</title>

 

 

<link href="css.css" rel="stylesheet" type="text/css" />

 

 

</head>

 

 

 

 

<body>

 

 

</body>

 

 

</html>

 

 

 

XHTML index.htm css.css

 

 

們在<body></body>標籤對中寫 DIV

 

 

 

<div id ="container">[color=#aaaaaa]<!--頁面層容-->[/color]

 

 

<div id ="Header">[color=#aaaaaa]<!--頁面頭-->[/color]

 

 

</div>

 

 

<div id ="PageBody">[color=#aaaaaa]<!--頁面主-->[/color]

 

 

<div id ="Sidebar">[color=#aaaaaa]<!--側邊-->[/color]

 

 

</div>

 

 

<div id ="MainBody">[color=#aaaaaa]<!--主體內-->[/color]

 

 

</div>

 

 

</div>

 

 

<div id ="Footer">[color=#aaaaaa]<!--頁面底-->[/color]

 

 

</div>

 

 

</div>

 

 

 

 

 

40


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

使,我,接 css.css 寫入 CSS 代碼

如下:

 

 

 

/*基本信*/

 

 

body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}

 

 

 

/*頁面層容*/

 

 

#container {w idth:100%}

 

 

 

 

/*頁面頭*/

 

 

#Header {w idth:800px;margin:0 auto;height:100px;background:#FFCC99}

 

 

 

 

/*頁面主*/

 

 

#PageBody {w idth:800px;margin:0 auto;height:400px;background:#CCFF00}

 

 

 

/*頁面底*/

 

 

#Footer {w idth:800px;margin:0 auto;height:50px;background:#00FFFF}

 

 

 

 

 

CSS CSS2.0 ):

 

 

1

 

 

2body 是一 HTML 了;

 

 

3 CSS

 

 

font:12px Tahoma

使寫,完font-size:12px;font-family:Tahoma 12 小, Tahoma 格式;

 

 

41


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

margin:0px

使

 

 

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

 

margin:0px 0px 0px 0px

 

 

順序 /   /   /   margin:0()

說明 body 0 使用 auto 調距,

 

 

margin:0px auto

0px調

使到的 padding 屬性 margin ,只margin padding 則是內部距離。

 

 

te xt-align:ce nte r

齊。

 

 

 

background:#FFF

使 background:#FFFFFFbackground 式: background:#ccc url('bg.gif') top left no -repeat使#CCC(度色)使 bg.gif 片,

 

top left

表示no-repeat 滿

 

top/right/left/bottom/center

/   /   /   /  使用

 

background:url('bg.gif') 20px 100px;

X 20 Y 100

 

repeat/no-repeat/repeat-x/repeat-y

分別表 滿個層 /  不填 /  沿 X /  沿 Y

 

 

 

 

42


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

he ight / width / color

高度(px)、寬(px)(HTML )

4使?大使呢?

 

#container 使

 

margin:0 auto;

0。 如 auto

 margin:auto 使

5 CSS CSS2.0 。 當 DIV

 

 

們把 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 {w idth:800px;margin:10px auto}

 

 

 

樣式說明:

 

 

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

 

a:hover {}

 

 

43


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

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

 

 

域。

 

width:800px 800

margin:10px auto距爲 10 。 上層的 margin auto

 

 

TOP TOP LOGO、菜單 Banne r是對設是在 FW 片:

 

 

 

 

TOP  包括 LOGO 由於 LOGO 的顏 色 GIF 調 Alpha (此 處) logo.gif,圖像寬度 800px

 

 

*  使 GIF 使 JPEG 不是更好嗎?

GIF 使使片並 沒使使 GIF 因此這的。

 

 

 

 

44


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

*   Banne r 部分還能使 GIF 格式嗎?

,因 Banner 使 GIF 失,必須 使 JPEG banner.jpg

 

 

*   CSS 入速 度。

 

 

TOP 並將 DIV 寫入 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="#">設計</a></li>

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#">相冊</a></li>

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#">論壇</a></li>

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#">關於</a></li>

 

 

</ul>

 

 

</div>

 

 

 

 

 

 

 

45


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

<div id ="banner">

 

 

</div>

 

 

 

使<li>便式。

 

 

 

<li class="menuDiv"></li>

便。然 css.css 寫入

/*頁面頭部*/

 

 

#header {background:url(logo.gif) no-repeat}

 

 

 

樣式說明:

 

#header {background:url(logo.gif) no -repeat}

LOGO。這 he ade r 呢?

header banner 內容 自調

 

 

使用列<li>製作菜單

 

 

開始此入了 DIVCSS index.htm css.css 。這<li>來製作菜單。

 

<div id="menu">

 

 

<ul>

 

 

<li><a href="#"></a ></li>

 

 

 

46


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#"></a></li>

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#"></a></li>

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#"></a></li>

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#"></a></li>

 

 

<li class="menuDiv"></li>

 

 

<li><a href="#"></a></li>

 

 

</ul>

 

 

</div>

 

 

 

<ul></ul><li></li> HTML

HTML

 

 

HTML 義爲 id="divID" CSS 則是

#divID{}   HTML class="divID" CSS .divID

 

 

id="divID"<img></img> img CSS #divID

img {}樣, class="divID".divID img {}希望大

 

 

另外HTML ,例 tabletrtdthformimginput...,如果你 CSS {} CSS 該寫 在大括{}中。

 

先在 css.css

 

 

47


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

#menu ul {list-style:none;margin:0px;}

 

 

#menu ul li {float:left;}

 

 

 

解釋一下:

 

 

#menu ul {list-style:none;margin:0px;}

list-style :none

margin:0px UL 使進。

 

 

#menu ul li {float:left;}

這裏 float:left  使(float)。 到

 

 

 

 

#menu ul li {}再加入代 margin:0 10px

 

 

 

#menu ul {list-style:none;margin:0px;}

 

 

#menu ul li {float:left;margin:0 10px}

 

 

 

margin:0 10px 20 距離(10px,右10px),預覽的效果

如下:

 

 

 

 

下:

 

 

 

#menu {padding:20px 20px 0 0}

 

 

/*利用 padding:20px 20px 0 0 來固定菜單位*/

 

 

#menu ul {float:right;list-style:none;margin:0px;}

 

 

48


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

/*添加了 float:right 使得菜單位於頁面右*/

 

 

#menu ul li {float:left;margin:0 10px}

 

 

 

 

<li class="menuD iv"></li>使。 按

 

 

 

.menuDiv {w idth:1px;height:28px;background:#999}

 

 

 

 

 

 

 

 

碼:

 

 

 

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

 

 

 

dis play:block;line -height:28px

 

 

,在 css.css 碼:

 

 

 

#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}

 

 

#menu ul li a:hover{}

 

 

 

下:

 

 

 

 

 

 

 

 

 

49


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

使 borde r cle ar 性。

 

 

table ,那需要 制<td></td>中加入這麼一段可以試:

<div style="border-bottom:1px dashed #ccc"></div>

 

 

明白 dashedsoliddotted...出許 多等。

 

 

 

<div id ="banner"></div>

 

 

 

便中的 banner css.css

 

 

 

#banner {

 

 

background:url(banner.jpg) 0 30px no-repeat; /*加入背景圖*/

 

 

w idth:730px; /*設定層的寬*/

 

 

margin:auto; /*層居中*/

 

 

height:240px; /*設定高*/

 

 

border-bottom:5px solid #EFEFEF; /*畫一條淺灰色實*/

 

 

clear:both /*清除浮*/

 

 

}

 

 

 

border 使速度

 

 

就是 clear:bothclear:left/right clear:both ulli banner

 

 

 

 

50


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

<div id ="pagebody"><!--頁面主-->

 

 

<div id ="sidebar"><!--側邊-->

 

 

</div>

 

 

<div id ="mainbody"><!--主體內-->

 

 

</div>

 

 

</div>

 

 

 

css.css 式:

 

 

 

#pagebody {

 

 

w idth:730px; /*設定寬*/

 

 

margin:8px auto; /**/

 

 

}

 

 

#sidebar {

 

 

w idth:160px; /*設定寬*/

 

 

text-align:left; /*文字左對*/

 

 

float:left; /*浮動居*/

 

 

clear:left; /*不允許左側存在浮*/

 

 

overflow :hidden; /*超出寬度部分隱*/

 

 

}

 

 

#mainbody {

 

 

w idth:570px;

 

 

text-align:left;

 

 

 

51


Div + CSS  佈局大全》  博客園 Jesse Zhao  整理 http ://jessezhao.cnblo gs.com     M SN/M ail:p rolibertine@ gmail.co m

 

 

 

float:right; /*浮動居*/

 

 

clear:right; /*不允許右側存在浮*/

 

 

overflow :hidden

 

 

}

 

 

 

#sidebar #mainbody

 

 

 

border:1px solid #E00;

 

 

height:200px

 

 

 

應該

 

160+2(border)+570+2=734px,由 clear ,這位的情使

 

 

 

 

加的 overflow:hidden 則可使隱藏到一

些網頁在載入時,由於圖太大,導致佈局被開,直到頁面下載成才恢復正常,過添加

overflow :hidden

 

 

CSS  ,但 是使

 

 

 

 

 

 

52


 [x1]hspace 屬性可設置或返回圖像的左邊緣和右邊緣的空白。

 

hspace vspace 屬性可與 align 一同使用,來設置圖像與周圍文本的距離。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章