課程
/前端開發(fā)
/HTML/CSS
/網(wǎng)頁布局基礎(chǔ)
flow float layer和標(biāo)準(zhǔn)文檔流 浮動和絕對定位又是怎么回事
2017-02-25
源自:網(wǎng)頁布局基礎(chǔ) 1-2
正在回答
在HTML中,有三種機制:文檔流(默認(rèn)) 浮動 定位。
文檔流:默認(rèn)機制,按照從上到下,從左到右的順序排列,這是最基礎(chǔ)的。
浮動:float:left|right;clear:both? ,脫離文檔流,可以想象成子DIV 漂浮起來了,比如,一個父div,有兩個子div,如果是在文檔流中,兩個子div是將父div分成上下兩部分的,就像是“日”字;但是如果子div1 設(shè)置了float屬性,那么子div2 就會往上移動,就會變成三個“口”字重疊在一起,最下面的那個口是父div,上一層是子div2,最上面是子div1 。
定位:position:absolute| relative|fixed? .
其中,absolute是絕對定位,脫離了文檔流。根據(jù)設(shè)置了定位屬性的父元素的左上角為基點,通過top right? bottom left來定位。如果父元素沒有設(shè)置定位屬性,那么以body的左上角為基點。比如三個div,id=one是父元素,兩個子元素的id分別是two three? 。設(shè)置one的position屬性(absolute relative都可),設(shè)置two的position:absolute;left:10px; top:10px; three不設(shè)置position屬性。那么情形和上面的float的三個“口”字重疊一樣,底層是one,次一層是three,最上面是two,但是最上面的會向右和向下移動10px。
relative是相對定位,沒有脫離文檔流,不可疊加。還是上面的例子,三個div ,one two three。如果之設(shè)置two的position:relative;left:10px;top:10px;? 那么結(jié)果就會是這樣的:想象一個“日”字,上面的是two,下面的是three。雖然two向右 向下移動了10px,但是three依然不會占上去,依然在文檔流中的原來位置。
Limargin
慕粉1474530878 提問者
浮動定位是相對于容器(父元素)來講的,當(dāng)左浮動時,子元素在父元素左側(cè)顯示;當(dāng)右浮動時,子元素在父元素右側(cè)顯示,父元素位置發(fā)生變化,子元素跟著一起變化。絕對定位是相對于瀏覽器窗口來說的,當(dāng)元素進行絕對定位后,不會隨著父元素變化而變化。
舉報
讓你精通CSS中三大定位機制,徹底掌握網(wǎng)頁布局的相關(guān)知識
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-02-25
在HTML中,有三種機制:文檔流(默認(rèn)) 浮動 定位。
文檔流:默認(rèn)機制,按照從上到下,從左到右的順序排列,這是最基礎(chǔ)的。
浮動:float:left|right;clear:both? ,脫離文檔流,可以想象成子DIV 漂浮起來了,比如,一個父div,有兩個子div,如果是在文檔流中,兩個子div是將父div分成上下兩部分的,就像是“日”字;但是如果子div1 設(shè)置了float屬性,那么子div2 就會往上移動,就會變成三個“口”字重疊在一起,最下面的那個口是父div,上一層是子div2,最上面是子div1 。
定位:position:absolute| relative|fixed? .
其中,absolute是絕對定位,脫離了文檔流。根據(jù)設(shè)置了定位屬性的父元素的左上角為基點,通過top right? bottom left來定位。如果父元素沒有設(shè)置定位屬性,那么以body的左上角為基點。比如三個div,id=one是父元素,兩個子元素的id分別是two three? 。設(shè)置one的position屬性(absolute relative都可),設(shè)置two的position:absolute;left:10px; top:10px; three不設(shè)置position屬性。那么情形和上面的float的三個“口”字重疊一樣,底層是one,次一層是three,最上面是two,但是最上面的會向右和向下移動10px。
relative是相對定位,沒有脫離文檔流,不可疊加。還是上面的例子,三個div ,one two three。如果之設(shè)置two的position:relative;left:10px;top:10px;? 那么結(jié)果就會是這樣的:想象一個“日”字,上面的是two,下面的是three。雖然two向右 向下移動了10px,但是three依然不會占上去,依然在文檔流中的原來位置。
2017-02-25
浮動定位是相對于容器(父元素)來講的,當(dāng)左浮動時,子元素在父元素左側(cè)顯示;當(dāng)右浮動時,子元素在父元素右側(cè)顯示,父元素位置發(fā)生變化,子元素跟著一起變化。絕對定位是相對于瀏覽器窗口來說的,當(dāng)元素進行絕對定位后,不會隨著父元素變化而變化。