今天我想個大家分享的內(nèi)容如題,是清除浮動榛泛。這個問題我本想以后再寫曹锨,但今天一下子想不起來關(guān)于CSS還有什么可寫的了,今天就把這個內(nèi)容先拿出來談一下吧,后面的文章內(nèi)容范圍相對來說我會寫的相對隨意一點,但多以JS為主炭庙。
什么是清除浮動煌寇?它所解決的是什么問題阀溶?
標題上寫了兩個問題银锻,可其實這是為了說的清楚一點而已,就我個人的理解而言我覺得其實是一個問題。接下來我們就具體的看一下這個問題的描述(下面這段字出于懶得考慮我就引用別人的描述了掉弛,應(yīng)該不會侵權(quán)吧殃饿?):
在非IE瀏覽器(如Firefox)下乎芳,當容器的高度為auto奈惑,且容器的內(nèi)容中有浮動(float為left或right)的元素,在這種情況下原在,容器的高度不能自動伸長以適應(yīng)內(nèi)容的高度庶柿,使得內(nèi)容溢出到容器外面而影響(甚至破壞)布局的現(xiàn)象腊敲。這個現(xiàn)象叫浮動溢出,為了防止這個現(xiàn)象的出現(xiàn)而進行的CSS處理沸柔,就叫CSS清除浮動。
上面這段就是關(guān)于這個問題的描述,大家可以自己去寫個demo試一下掸读,其實就是父類元素縮成了一條線肾请,而子元素就自然的流到了父類元素外始苇,如果場景再大一些,流出的子元素還會影響到外面內(nèi)容的布局筐喳,導致肉眼可見的布局問題催式,為此呢,我們需要在有的位置清楚浮動避归。
清除浮動的的常用方式
看過我別的文章的朋友相信也發(fā)現(xiàn)了荣月,在一些涉及分支過多的技術(shù)上我大多只會介紹常用的或比較有特色的幾個(主要因為我自己也只會這么幾個),因為我覺得如果之談開發(fā)很多時候一個問題其實有一個解決方案就能處理梳毙,多幾個也只是為了應(yīng)對某些特殊場景哺窄,而在開發(fā)之外我們做拓展,我覺得掌握有特色的就可以了。
閑話說完萌业,接下來我就趕緊給大家介紹一下我覺得一些需要了解的方法:
1坷襟,為父類元素設(shè)置高度
這個方法是最簡單的,即你直接給父類元素設(shè)置一個固定的高度把他撐開就可以了生年,看上去就能實現(xiàn)正常的布局效果婴程。
其實現(xiàn)原理上來說,就會發(fā)現(xiàn)這種方法存在許多問題抱婉。本質(zhì)上來說這個方法并沒有真正意義上清除了浮動档叔,看上去是父類元素包裹了其內(nèi)的浮動元素,可實際上只是我們手動撐開了父類元素蒸绩,然后浮動元素會和一般情況下的非浮動元素重合衙四,說直白一點就是浮動元素壓在了父類元素上面,從而表面上清除了浮動患亿。
看了上面的實現(xiàn)原理传蹈,相信大家也大概能想到這種方法的缺點,你的父類元素只能是固定高度的步藕,并且必須要提前知道才能設(shè)置卡睦,在如今動態(tài)、多設(shè)備漱抓、多解析器等因素的影響下這個方法可用范圍是及少的表锻,但這個方法憑借其簡單的實現(xiàn)和其對我們理解浮動清除問題有很大的幫助,所以還是選擇介紹一下這個方法乞娄。
我看了一下瞬逊,這篇文章到這里只算完成了一半吧,如果要今天完成可能略顯匆忙仪或,不符合我的節(jié)奏=确镊。=,今天就寫到這里吧范删,明天我會繼續(xù)就這個問題和大家做一個分享蕾域。