發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊(cè)
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
絕對(duì)定位或浮動(dòng)都能夠用來(lái)實(shí)現(xiàn)分欄效果。二者可以獨(dú)立使用,也可以結(jié)合在一起,相輔相成。 1、絕對(duì)定位 絕對(duì)定位的優(yōu)勢(shì)在于,我們可以絲毫不差地精確控制任何元素的位置—這里面沒有什么需要猜測(cè)或者運(yùn)氣的成分。由于應(yīng)用了絕對(duì)定位的元素被不留痕跡地從常規(guī)文檔流中完全移除,所以它也不會(huì)為其他元素帶來(lái)任何的影響。 那么讓我們?cè)囈辉囉媒^對(duì)定位如何實(shí)現(xiàn)下面的布局。 這是一個(gè)三欄的布局,并且是居中顯示的。其中,A欄是主體內(nèi)容欄,B欄和C欄都是側(cè)邊欄。首先,我們不可能直接用絕對(duì)定位將A、B、C三欄定位到居中的位置,因?yàn)槊總€(gè)人顯示器的分辨率是不同的,在1024X768分辨率的顯示器上定位的居中效果,在別的分辨率的顯示器上看到的效果肯定不會(huì)是居中顯示的,那么,該如何解決這個(gè)問題呢? 幸好,在絕對(duì)定位模型中有個(gè)極為有用的特性,那就是:若某個(gè)絕對(duì)定位元素的容器也被定位過,那么該元素指定的top和left值將不會(huì)基于文檔的根元素html(也就是瀏覽器窗口的左上角)計(jì)算,而是會(huì)基于其容器的左上角計(jì)算這個(gè)偏移量。換句話說,也就是:被定位過的容器將扮演其中所有元素絕對(duì)定位起始點(diǎn)的角色。 所以,利用這個(gè)特性,我們給A、B、C欄的外部加上一個(gè)容器D,如下圖: 然后,我們讓容器D居中,并給它加上一個(gè)屬性:position:relative,這樣,再用絕對(duì)定位定位A、B、C的top和left值,A、B、C的位置就會(huì)基于容器D的左上角的位置來(lái)計(jì)算了,這樣就可以實(shí)現(xiàn)我們期望的三欄居中的效果了。 但是,我們常用的布局并沒有這么簡(jiǎn)單,除了三欄之外,我們還需要一個(gè)頁(yè)頭和一個(gè)頁(yè)腳,如下圖: 這時(shí)候,再用絕對(duì)定位布局就行不通了,因?yàn)榻^對(duì)定位的元素會(huì)從文檔流中完全移除,這時(shí),頁(yè)腳會(huì)緊挨著頁(yè)頭,顯示在頁(yè)頭的下方。 如果我們一定要采用絕對(duì)定位的話,那么必須預(yù)先知道這三欄中每一欄的高度,然后再根據(jù)其中最高的一欄定位頁(yè)腳。若是任意一欄中的文本長(zhǎng)度無(wú)法確定的話,除了使用JavaScript,我們也只能放棄絕對(duì)定位的念頭,轉(zhuǎn)而投入到浮動(dòng)布局的懷抱。 2、浮動(dòng) 浮動(dòng)的本意是要將插入到文章中的圖片向左或者向右浮動(dòng),使圖片下方的文字自動(dòng)環(huán)繞在它的周圍,使圖片的左邊或者右邊不會(huì)出現(xiàn)一大塊的留白。 浮動(dòng)的語(yǔ)法雖然簡(jiǎn)單,但卻不那么容易掌握,下面讓我們舉例說明如何用浮動(dòng)來(lái)進(jìn)行布局。同樣,我們要實(shí)現(xiàn)一個(gè)帶頁(yè)腳的三欄布局。如下圖: 如何用浮動(dòng)實(shí)現(xiàn)這樣的效果呢?其實(shí)很簡(jiǎn)單: 1、設(shè)定E的寬度,讓E居中 2、設(shè)定A、B、C的寬度,將A、B、C分別向左浮動(dòng) 3、給頁(yè)腳設(shè)置clear屬性 需要說明的是,浮動(dòng)布局依然遵循常規(guī)文檔流,所以與絕對(duì)定位相比,浮動(dòng)定位時(shí)HTML源文件中元素聲明的位置顯得格外重要。 當(dāng)然,解決這個(gè)問題的最簡(jiǎn)單的方法就是在源文件中交換左欄和右欄的聲明次序,也有方法不用交換各欄的次序也可以實(shí)現(xiàn)同樣的布局,但是,這就要用到一種比較晦澀的使用負(fù)邊距值的方法。一般情況下,人們十有八九會(huì)選擇交換源文件中左中兩欄的聲明次序。
來(lái)自: leong > 《css div》
0條評(píng)論
發(fā)表
請(qǐng)遵守用戶 評(píng)論公約
div+Css
div+Css 網(wǎng)頁(yè)元素的float定位。本文向大家介紹一下如何用float構(gòu)建三欄DIV CSS網(wǎng)頁(yè)布局,這里分享一種用CSS float和clear屬性來(lái)獲得三...
Css布局
CSS教程:實(shí)例講解定位Position
CSS教程:實(shí)例講解定位PositionCSS教程:實(shí)例講解定位Position2009-05-12 08:00:58 來(lái)源:前端觀察 糖伴西紅柿。如果設(shè)定 position:relativ...
[S3-E429]CSS布局說——可能是最全的
定位的概念就是它允許你定義一個(gè)元素相對(duì)于其他正常元素的位置,它應(yīng)該出現(xiàn)在哪里,這里的其他元素可以是父元素,另一個(gè)元素甚至是瀏覽...
CSS float & position
CSS float &positionCSS float &position 2011-06-26 00:54:55 float:2.從自己開始浮動(dòng)或跟隨前面的浮動(dòng)元素浮動(dòng);4.仍從屬其父元素(可通過其父元素的 width/height + overflow 觀察);5....
DIV浮動(dòng)定位實(shí)現(xiàn)CSS分欄布局
DIV浮動(dòng)定位實(shí)現(xiàn)CSS分欄布局。本文和大家重點(diǎn)討論一下DIV浮動(dòng)定位的使用,CSS布局中實(shí)現(xiàn)分欄布局有兩種方法。第一種方法是使用四種CSS定...
div+css網(wǎng)頁(yè)標(biāo)準(zhǔn)版式布局 - 網(wǎng)站重構(gòu),div+css,DIV+CSS布局,web2...
解決辦法是在maincontent和footer之間插入一個(gè)容器,設(shè)置樣式 clear:both; height:0; font-size: 1px; line-height: 0px;用clear:both清...
我對(duì)BFC的理解
我對(duì)BFC的理解。既然上文提到BFC是一塊渲染區(qū)域,那這塊渲染區(qū)域到底在哪,它又是有多大,這些由生成BFC的元素決定,CSS2.1中規(guī)定滿足下...
這可能是史上最全的CSS自適應(yīng)布局總結(jié)
逛園子的時(shí)候經(jīng)??梢钥吹礁?dòng)布局,inline-block布局,彈性盒布局這幾個(gè)名詞。首先是塊級(jí)元素水平方向的auto,塊級(jí)元素的margin、borde...
微信掃碼,在手機(jī)上查看選中內(nèi)容