一、就 overflow 這個樣式而言,題主應該了解,或者自行百度下:(以下摘自百度百科)

創(chuàng)新互聯(lián)建站專注于樅陽網(wǎng)站建設(shè)服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供樅陽營銷型網(wǎng)站建設(shè),樅陽網(wǎng)站制作、樅陽網(wǎng)頁設(shè)計、樅陽網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務,打造樅陽網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供樅陽網(wǎng)站排名全網(wǎng)營銷落地服務。
CSS屬性
overflow?屬性規(guī)定當內(nèi)容溢出元素框時發(fā)生的事情。
說明
這個屬性定義溢出元素內(nèi)容區(qū)的內(nèi)容會如何處理。如果值為?scroll,不論是否需要,用戶代理都會提供一種滾動機制。因此,有可能即使元素框中可以放下所有內(nèi)容也會出現(xiàn)滾動條。
基本特性
適用于:block-level?and?replaced?elements
JavaScript?語法:object.style.overflow="scroll"
基本語法
overflow-x?overflow-y
overflow?:?visible?|?auto?|?hidden?|?scroll
二、關(guān)于清除浮動,其中就有使用 overflow 來達到閉合元素來修復高度坍塌的現(xiàn)象。
① overflow:hidden;,
只要使用了這個樣式的元素都會閉合,觸發(fā) hasLayout;
② overflow:auto;zoom:1;,
在不使用 overflow:hidden 的場景下,需要觸發(fā) hasLayout ,可以用 zoom: (normal以外的值) 這個樣式;
③ overflow:auto;height:1%;,
在不使用 overflow:hidden 的場景下,需要觸發(fā) hasLayout ,可以用 height: (auto以外的值)這個樣式,1%是為了在實現(xiàn)非0。
可以參考以下:
推薦倆種依靠clear屬于清除浮動的方法,推薦第二種,探究的記錄在后面,趕時間的看個開頭就好了。
1. 在受浮動坍塌的父級元素結(jié)束標簽前,添加一個高寬為0的空div,然后設(shè)置 clear:both
2 .創(chuàng)建一個clearfix樣式,并使用偽類元素 after 添加樣式到父元素上
無論是塊級元素還是行內(nèi)元素設(shè)置了浮動之后都會生成一個塊級框,并且可以編輯它的寬高,此時該浮動元素就脫離了文檔流。舉個例子,把網(wǎng)頁看成一個三維的泳池,文檔流在泳池底部,給文檔流中一個元素設(shè)置了float之后,它就從這個網(wǎng)頁的泳池底部浮動到了水上。此時同級的塊級元素會無視float元素在網(wǎng)頁上的位置進行布局。但是行內(nèi)元素并不會被遮擋,而是像和它一起浮在水面上一樣環(huán)繞這個浮動元素。
根據(jù)前面介紹,元素設(shè)置float后好像會從網(wǎng)頁上浮一樣,脫離文檔流。這樣的話,如果父級元素原本沒設(shè)置高度,計劃用子元素撐開父級元素。此時子元素因為float上浮,則父級元素的高度就會因為自身沒設(shè)置而坍塌。
來個示例 ( 下文都是依據(jù)這個示例來討論,故先給出HTML結(jié)構(gòu)和CSS樣式 ):
讓我們再打開開發(fā)者工具具體看看
然后讓我們把父元素也一同浮動看看
例如:
此時背景色為粉色的 ch2 就會被浮動的 背景色半透明的ch1 覆蓋,但是ch2的字體還是環(huán)繞著ch1
如果讓ch2 也浮動,則ch1 和 ch2 就相當于一同浮起到這個網(wǎng)頁泳池的水面上。
另外,ch2 雖然不浮動起來時會被 同級ch1遮擋,但是ch2 它內(nèi)部的行內(nèi)元素卻是環(huán)繞 ch1 的 ,同時 ch2 內(nèi)部的塊級元素還是會被浮動起來的ch1遮擋。
解決父元素高度坍塌的問題,其實可以給父元素指定個高度,但這樣就沒有父元素高度自適應的意義了;另外全部元素一起浮動也能解決父元素坍塌,子元素被遮擋的問題,但這本質(zhì)上只是將所有元素一起浮動到頂端,并沒有解決問題,反而還會影響另外的元素排列。下面介紹clear屬性來清除浮動
那我們先來看看 clear 屬性有什么用
我們稍稍改動一下上面的例子在 ch2 下加一個 p 標簽然,然后改動一下 ch1 和 ch2 的樣式讓它們倆高度不一樣。
若此時我們給p元素也加上浮動呢?
樣例:
1,是繼承關(guān)系,.Hot樣式繼承.itemHit樣式
2,好處:.Hot繼承.itemHit已經(jīng)擁有的樣式,去除冗余CSS代碼,突出了CSS的繼承思想
3,可以分開寫,但是.Hot無法擁有繼承CSS樣式,只擁有本身CSS樣式
問題1,很顯然是不合理的,增加一個屬性可以,改變就不行。如果硬要這樣做,可以采取細一點的方式,例如為a定義一個樣式: .apage a 和 .bpage a 在A頁面是div class="apage"a ....../a/div 而在B頁面 則是 div class="bpage"a ....../a/div
問題2,盡量將所有的樣式表都放在一個單獨的CSS文件里,網(wǎng)站所有的頁面都調(diào)用這一個文件。要明白,CSS、HTML 都不是運行程序,而只是代碼,效率和文件的大小有很直接的關(guān)系,如果10個頁面10個CSS,明顯的沒有達到這樣的目的。
瀏覽器打開一個頁面時,同時也下載了CSS到IE的臨時文件夾中(除非CSS不是一個單獨的文件),再打開其他頁面,如果引用的是同一個CSS,就不會再進行下載。顯而易見,下載10個文件要比下載1個文件效率低得多,即使這1個文件比10文件加起來還大。
回復樓下的看法:一個網(wǎng)站的所有頁面不可能有非常多的區(qū)別,況且CSS是在客戶端執(zhí)行,完全不涉及到服務端,況且瀏覽器是先看樣式名,再根據(jù)樣式名去查找相符合的樣式。不是把所有的樣式都遍歷一次,你所說的打開頁面慢、CUP頻率高貌似不大可能出現(xiàn)。即使有,那也不是因為樣式表很大的緣故,即使是因為樣式表非常大,這樣的影響也小到可以忽略,即使明顯,也只是在客戶端,和客戶機有較大關(guān)系,對服務端不會造成任何壓力。
如果你很不喜歡這樣的方式,至少可以把布局大致相同的頁面引用某一個CSS,完全不相同的引用另一個CSS。但是一個頁面一個CSS,絕對更不可取。
1、給父元素定義上邊框
2、給父元素定義上內(nèi)邊距
3、給父元素添加 overflow:hidden;
4、添加浮動
5、添加絕對定位
分享標題:css樣式坍塌,高度塌陷 css
當前鏈接:http://chinadenli.net/article28/dsihdcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、App開發(fā)、網(wǎng)站改版、網(wǎng)頁設(shè)計公司、、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)