浮動(dòng)什么意思呢,比如,默認(rèn)的,我們知道,div是占滿一行的,現(xiàn)在我們想把兩個(gè)div顯示在一行上,那怎么辦呢
10年積累的成都做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有杜爾伯特免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
div style="width:100px;"11111/divdiv style="width:150px"2222/div
這樣我們就設(shè)置了兩個(gè)div,一個(gè)寬度100px,一個(gè)寬150px,可預(yù)覽一下,我們的div仍在兩行上,那么怎么把它改到一行上呢,這兒就需要float,設(shè)置第一個(gè)div的float為left
div style="width:100px;float:left;"11111/divdiv style="width:150px"2222/div
再預(yù)覽,就可以看到,它們到一行上了。
clear是什么意思呢,clear是清除的意思,它有三個(gè)值,left,right,both
很好理解,如果設(shè)置了clear:left,它就不怕它的左邊有float,同理clear:right,clear:both,是左右都不讓有float
舉個(gè)例子,還是上面的
我們?cè)O(shè)置第二個(gè)div的clear:left,也就是不讓它左邊有float
div style="width:100px;float:left;"11111/divdiv style="width:150px;clear:left;"2222/div
我們預(yù)覽一下,就可以看到,盡管第一個(gè)div已經(jīng)float:left了,這兩個(gè)div仍然在兩行上,就是由于第二個(gè)div不讓它左邊有float
因?yàn)閏ss的定義是后面的可以覆蓋前面的,明白了吧
浮動(dòng)元素可以相互嵌套,嵌套規(guī)律與流動(dòng)元素的嵌套相同。浮動(dòng)的包含元素(父元素)總會(huì)自動(dòng)調(diào)整自身的高度和寬度以實(shí)現(xiàn)對(duì)浮動(dòng)元素的包含。
我們來看一個(gè)例子:
瀏覽器效果圖:
這時(shí)會(huì)發(fā)現(xiàn)父元素會(huì)自動(dòng)調(diào)整自身的大小來包含子元素。
如果包含元素定義了高度和寬度則他不會(huì)隨子元素的大小而自動(dòng)調(diào)整自身顯示區(qū)域來適應(yīng)子元素的顯示。注意,在IE6及更低版本瀏覽器中包含框仍然能夠自動(dòng)調(diào)整自身大小來適應(yīng)子元素的顯示大小,不過在IE7版本中微軟糾正了這個(gè)不符合標(biāo)準(zhǔn)的顯示方法。如下
示例:
瀏覽器效果圖:
默認(rèn)狀態(tài)下溢出不隱藏,我們可以添加 樣式 overflow:hidden; 隱藏多余的部分或overflow: scroll; 多余部分顯示滾動(dòng)條。
如果把浮動(dòng)元素嵌入到流動(dòng)元素之內(nèi),則父元素不能夠自適應(yīng)子元素的高度,
如下示例:
瀏覽器效果圖:
在上圖中可以看到包含元素div并,沒用顯示。原因就是包含元素沒有適應(yīng)子元素的高度,而是根據(jù)自身定義的屬性以獨(dú)立的形式顯示(父元素沒有被撐開,僅收縮成一條直線顯示)。所以,在應(yīng)用混合嵌套式,要預(yù)測(cè)到浮動(dòng)與流動(dòng)混合布局時(shí)會(huì)出現(xiàn)的各種怪現(xiàn)象,并積極做好兼容處理。
解決方法:可以在包含元素內(nèi)的最后一行添加一個(gè)清除元素,強(qiáng)制撐開包含元素,使其包含浮動(dòng)元素。
示例如下:
瀏覽器效果圖:
本文章參考書籍:HTML5+CSS3+JavaScript從入門到精通(標(biāo)準(zhǔn)版)未來科技 編著
問題補(bǔ)充:向 jszjgqq 和 363822803 提問 : 清除浮動(dòng)是 清除自身的浮動(dòng)? 還是 清除其它元素浮動(dòng)對(duì)自己的影響?
清除其它元素浮動(dòng)對(duì)自己的影響
=======================================================
問題一:一直搞不明白,既然清除了浮動(dòng)(如上例子),就不應(yīng)該再浮動(dòng)了,即兩個(gè)div應(yīng)該 各自 獨(dú)占一行,而事實(shí)是兩個(gè)div仍然浮動(dòng)在 左右兩邊 ??
答: 清除浮動(dòng)是清除的本身,也就是說第三個(gè)div元素不會(huì)進(jìn)行浮動(dòng),而前面兩個(gè)div不受任何的影響.如果說第三個(gè)元素不清除浮動(dòng)的話那就會(huì)跟著上一個(gè)元素進(jìn)行浮動(dòng).
問題二:“clear :both”,兩個(gè)浮動(dòng)的div,是在它的上面???怎么會(huì)是both呢?
在div sytle="clear :both"/div這行代碼中,both指的不就是 本元素(div) 的左右
兩邊嗎?
clear :both 的意思是清除左右兩邊的浮動(dòng)元素,
我建議你前面2個(gè)div 都寫float:left 這樣測(cè)試的時(shí)候更加好理解
如果你這么寫
div id="content1"
div style="float :left"/div
div style="float :left"/div
div/div
/div
上面代碼的第三個(gè)div你會(huì)發(fā)現(xiàn)緊貼著第二個(gè)div后面.
如果第三個(gè)div寫style="clear:both"的話就不會(huì)浮動(dòng)了,或者說clear:left 清除左浮動(dòng).
我覺得float很好的理解,你自己多寫幾個(gè)例子研究下就行了,不要光憑著想象去解決問題,要用實(shí)際的例子去證明你的猜測(cè).
網(wǎng)頁題目:包含css樣式規(guī)則float的詞條
當(dāng)前網(wǎng)址:http://jinyejixie.com/article20/dsdigjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、做網(wǎng)站、營銷型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、服務(wù)器托管、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)