国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

CSS分欄布局的方法:絕對定位和浮動

2024-07-11 08:27:31
字體:
供稿:網(wǎng)友

在CSS中,實現(xiàn)分欄布局有兩種方法。第一種方法是使用四種CSS定位選項(absolute 、static、relative和fixed)中的絕對定位(absolute positioning),它可以將文檔中的某個元素從其原本位置上移除,并重新定位在期望的任何地點之上。第二種則是使用CSS中的浮動(float)概念。

絕對定位或浮動都能夠用來實現(xiàn)分欄效果。二者可以獨立使用,也可以結(jié)合在一起,相輔相成。

1、絕對定位

絕對定位的優(yōu)勢在于,我們可以絲毫不差地精確控制任何元素的位置—這里面沒有什么需要猜測或者運氣的成分。由于應(yīng)用了絕對定位的元素被不留痕跡地從常規(guī)文檔流中完全移除,所以它也不會為其他元素帶來任何的影響。

那么讓我們試一試用絕對定位如何實現(xiàn)下面的布局。

 

這是一個三欄的布局,并且是居中顯示的。其中,A欄是主體內(nèi)容欄,B欄和C欄都是側(cè)邊欄。首先,我們不可能直接用絕對定位將A、B、C三欄定位到居中的位置,因為每個人顯示器的分辨率是不同的,在1024X768分辨率的顯示器上定位的居中效果,在別的分辨率的顯示器上看到的效果肯定不會是居中顯示的,那么,該如何解決這個問題呢?

幸好,在絕對定位模型中有個極為有用的特性,那就是:若某個絕對定位元素的容器也被定位過,那么該元素指定的top和left值將不會基于文檔的根元素html(也就是瀏覽器窗口的左上角)計算,而是會基于其容器的左上角計算這個偏移量。換句話說,也就是:被定位過的容器將扮演其中所有元素絕對定位起始點的角色。

所以,利用這個特性,我們給A、B、C欄的外部加上一個容器D,如下圖:

 

然后,我們讓容器D居中,并給它加上一個屬性:position:relative,這樣,再用絕對定位定位A、B、C的top和left值,A、B、C的位置就會基于容器D的左上角的位置來計算了,這樣就可以實現(xiàn)我們期望的三欄居中的效果了。

但是,我們常用的布局并沒有這么簡單,除了三欄之外,我們還需要一個頁頭和一個頁腳,如下圖:

 

這時候,再用絕對定位布局就行不通了,因為絕對定位的元素會從文檔流中完全移除,這時,頁腳會緊挨著頁頭,顯示在頁頭的下方。

如果我們一定要采用絕對定位的話,那么必須預先知道這三欄中每一欄的高度,然后再根據(jù)其中最高的一欄定位頁腳。若是任意一欄中的文本長度無法確定的話,除了使用JavaScript,我們也只能放棄絕對定位的念頭,轉(zhuǎn)而投入到浮動布局的懷抱。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安溪县| 周口市| 岑溪市| 新安县| 长顺县| 上饶县| 夹江县| 伊通| 曲沃县| 德令哈市| 荆州市| 松滋市| 密山市| 高雄市| 甘谷县| 雅安市| 三江| 瓮安县| 额济纳旗| 获嘉县| 永嘉县| 青铜峡市| 伽师县| 龙川县| 乌拉特后旗| 博乐市| 宁蒗| 乐陵市| 孟州市| 巴林右旗| 三河市| 大方县| 公安县| 延庆县| 阿尔山市| 涟水县| 宜丰县| 汉川市| 南昌市| 东丰县| 高清|