簡單學習CSS網頁布局(初學者)
發(fā)布時間:2009-03-02 22:17:43 作者:佚名
我要評論

網頁制作Webjx文章簡介:XHTML主要用div標簽進行網頁的布局,而控制布局的工具是CSS代碼,以使網頁符合Web標準。所以很多網頁設計師把這種布局方法的網頁叫做“Div+CSS”網頁。其實這是不太準確的說法,因為Web標準不太被行外人士所熟識,導致“Div+CSS&rdquo
XHTML主要用div標簽進行網頁的布局,而控制布局的工具是CSS代碼,以使網頁符合Web標準。所以很多網頁設計師把這種布局方法的網頁叫做“Div+CSS”網頁。其實這是不太準確的說法,因為Web標準不太被行外人士所熟識,導致“Div+CSS”的概念取代了Web標準。
11.1.6 div元素的嵌套
類似于表格布局頁面,為了實現復雜的布局結構,div元素也需要互相嵌套。不過在布局頁面時盡量少嵌套,因為XHTML元素多重嵌套將影響瀏覽器對代碼的解析速度。在D:\web\目錄下創(chuàng)建網頁文件(XHTML1.0),命名為div_div.htm,編寫div_div.htm文件代碼如代碼11.6所示。
代碼11.6 div嵌套:div_div.htm
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>div嵌套</title>
<style type="text/css">
*{margin:0px;
padding:0px;
}
#all{width:400px;
height:300px;
background-color:#600;
margin:0px auto;
}
#one{width:300px;
height:120px;
background-color:#eee;
border:1px solid #000;
margin:0px auto;
}
#two{width:300px;
height:120px;
background-color:#eee;
border:1px solid #000;
margin:0px auto;
}
</style></head>
<body>
<div id="all">
<div id="one">頂部</div>
<div id="two">底部</div>
</div>
</body>
</html>
為了更方便看到div的表現,筆者給內部div設置了淺灰色背景色和黑色邊框,而外部的div為深紅色背景色。本示例綜合了div居中的知識,內部的2個div水平居中在其父容器(外部div)中。在瀏覽器地址欄輸入http://localhost/div_div.htm,瀏覽效果如圖11.6所示。

圖11.6 div嵌套
11.1.7 div元素的浮動
作為塊狀元素,通過div布局網頁,CSS設置其屬性,完全符合內容與表現分離。不過一個div標簽占據一行,怎樣實現布局中并列的2塊區(qū)域呢?塊狀元素有一個很重要的“float”屬性,可以使多個塊狀元素并列于一行。
float屬性也被稱為浮動屬性,這個詞非常形象。對前面的div元素設置浮動屬性后,當前面的div元素留有足夠的空白寬度時,后面的div元素將自動浮上來,和前面的div元素并列于一行。float屬性的值有l(wèi)eft、right、none和inherit。很多對象都有inherit屬性,這是繼承屬性,代表繼承父容器的屬性。float屬性值為none時,塊狀元素不會浮動,這也是塊狀元素的默認值。float屬性值為left時,塊狀元素將向左浮動;float屬性值為right時,塊狀元素將向右浮動。
— 注意:使2個div并列于一行的前提是:這一行有足夠的寬度容納2個div的寬度。
(1)在D:\web\目錄下創(chuàng)建網頁文件(XHTML1.0),命名為div_float.htm,編寫div_float.htm文件代碼如代碼11.7所示。
代碼11.7 設置div浮動:div_float.htm
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>設置div浮動</title>
<style type="text/css">
*{margin:0px;
padding:0px;
}
#one{width:125px;
height:120px;
background-color:#eee;
border:1px solid #000;
float:left;
}
#two{width:200px;
height:120px;
background-color:#eee;
border:1px solid #000;
}
</style></head>
<body>
<div id="one">第1個div</div>
<div id="two">第2個div</div>
</body>
</html>
(2)為了更方便看到div的表現,筆者給div設置了淺灰色背景色和黑色邊框,在瀏覽器地址欄輸入http://localhost/div_float.htm,瀏覽效果如圖11.7所示。
(3)筆者只設置了第1個div元素向左浮動,第2個div元素“流”上來了,并緊挨著第1個div元素。設置第2個div向右浮動如代碼11.8所示。
代碼11.8 設置div浮動:div_float.htm
#two{width:200px;
height:120px;
background-color:#eee;
border:1px solid #000;
float:right;
}
(4)在瀏覽器地址欄輸入http://localhost/div_float.htm,瀏覽效果如圖11.8所示。


圖11.7 設置div向左浮動 圖11.8 div左浮動和右浮動
(5)這時,第2個div緊挨著其父容器(瀏覽器)的右邊框,當然,這2個div元素也可以換個位置,即設置CSS如代碼11.9所示。
代碼11.9 設置div浮動:div_float.htm
#one{width:125px;
height:120px;
background-color:#eee;
border:1px solid #000;
float:right;
}
#two{width:200px;
height:120px;
background-color:#eee;
border:1px solid #000;
float:left;
}
(6)在瀏覽器地址欄輸入http://localhost/div_float.htm,瀏覽效果如圖11.9所示。

圖11.9 交換div浮動方向
浮動屬性是CSS布局的最佳利器,可以通過不同的浮動屬性值靈活地定位div元素,以達到靈活布局網頁的目的。塊狀元素(包括div)浮動的范圍由其被包含的父容器所決定,以上實例div元素的父容器就是body或html。
為了更加靈活地定位div元素,CSS提供了clear屬性,中文意思即為“清除”。clear屬性的值有none、left、right和both,默認值為none。當多個塊狀元素由于第1個設置浮動屬性而并列時,如果某個元素不需要被“流”上去,即可設置相應的clear屬性。
(1)在D:\web\目錄下創(chuàng)建網頁文件(XHTML1.0),命名為div_clear.htm,編寫div_clear.htm文件代碼如代碼11.10所示。
代碼11.10 div的清除屬性:div_clear.htm
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>div的清除屬性</title>
<style type="text/css">
*{margin:0px;
padding:0px;
}
.all{width:400px;
height:170px;
background-color:#600;
margin:0px auto;
}
.one,.two,#three_1,#three_2,#three_3,#three_4{width:120px;
height:50px;
background-color:#eee;
border:1px solid #000;
}
.one{float:left;}
.two{float:right;}
#three_1{clear:none;}
#three_2{clear:both;}
#three_3{clear:right;}
#three_4{clear:left;}
</style></head>
<body>
<div class="all">
<div class="one">第1個div</div>
<div class="two">第2個div</div>
<div id="three_1">第3個div(clear:none;)</div>
</div>
<div class="all">
<div class="one">第1個div</div>
<div class="two">第2個div</div>
<div id="three_2">第3個div(clear:both;)</div>
</div>
<div class="all">
<div class="one">第1個div</div>
<div id="three_3">第2個div(clear:right;)</div>
<div class="two">第3個div</div>
</div>
<div class="all">
<div class="one">第1個div</div>
<div id="three_4">第2個div(clear:left;)</div>
<div class="two">第3個div</div>
</div>
</body>
</html>
(2)為了更方便看到div的表現,筆者給內部div設置了淺灰色背景色和黑色邊框,而外部的div為深紅色背景色。在瀏覽器地址欄輸入http://localhost/div_clear.htm,瀏覽效果如圖11.10所示。

圖11.10 div清除屬性
— 第1種情況為默認情況,即clear屬性值為none,由于前面的div都設置了浮動屬性(1個向左浮動,1個向右浮動),所以第3個div元素自動“流”上去,處于2個div之間的空白處。
— 第2種情況clear屬性值為both,即不管前面的div設置向左浮動還是向右浮動,此div元素不自動“流”上去。其不受浮動影響,保持在底部不動。
— 第3種情況clear屬性值為right,第2個div兩邊都有浮動的div,但不允許向右浮動的div處于同一行,所以第3個div元素自動換行。
— 第4種情況clear屬性值為left,第2個div兩邊都有浮動的div,但不允許向右浮動的div處于同一行,所以第2個div元素自動換行。
通過clear屬性,div元素的定位更加方便自如,希望讀者多加練習。
相關文章
- 本文主要介紹了css九宮格布局的五種方法,內容包括grid布局、flex布局、table布局、float浮動定位、inline-block+letter-spacing屬性這五種方法的實現,感興趣的可以了解下2023-09-18
- 在Web開發(fā)中,經常會遇到需要將元素水平和垂直居中的情況,今天,將為大家分享幾種CSS方法,讓你的元素輕松居中,讓頁面更美觀吸引人,感興趣的小伙伴可以自己動手試一試2023-09-08
- 相信大家在面試的時候也會經常碰到css實現元素居中的方法,下面我介紹6種方法給大家,歡迎大家評論區(qū)交流2023-09-07
- 最近需要做個換行的布局,本文主要介紹了flex布局中使用flex-wrap實現換行的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需2022-06-16
CSS布局之浮動(float)和定位(position)屬性的區(qū)別
今天看到有朋友留言問浮動和定位有什么區(qū)別,如何使用?今天找了篇文章,講的比較通俗易懂,供大家參考2021-09-23- 這篇文章主要介紹了css實現元素居中的N種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02
- 這篇文章主要介紹了div水平布局兩邊對齊的三種實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起2021-01-21
- 這篇文章主要介紹了waterfall瀑布流布局+動態(tài)渲染的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起2021-01-19
- 這篇文章主要介紹了頁面中有間隔的方格布局如何完美實現方法。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來2020-11-27
- 這篇文章主要介紹了css實現六種自適應兩欄布局方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習2020-10-28