CSS Overflow属性详解(转)
檢索或設(shè)置當(dāng)對(duì)象的內(nèi)容超過(guò)其指定高度及寬度時(shí)如何管理內(nèi)容。
所有對(duì)象的默認(rèn)值是 visible ,除了 textarea 對(duì)象和 body 對(duì)象的默認(rèn)值是 auto 。設(shè)置 textarea 對(duì)象此屬性值為 hidden 將隱藏其滾動(dòng)條。
overflow屬性有四個(gè)值:visible?(默認(rèn)),?hidden,?scroll, 和auto。同樣有兩個(gè)overflow的姐妹屬性overflow-y 和overflow-x,它們很少被采用。
Visible
如果你不設(shè)置overflow屬性,則默認(rèn)的overflow屬性值就是visible。所以一般而言,并沒有什么理由特別的設(shè)定overflow的屬性為visible除非你想覆蓋它在其它地方被設(shè)定的值。
這里需要記住的重要的事情是,盡管盒子外面的內(nèi)容是可見的,內(nèi)容并不會(huì)影響頁(yè)面的工作流。比如:
一般來(lái)說(shuō),你至少不用為里面的內(nèi)容為文字的盒子設(shè)置固定的高度,這樣就不會(huì)遇到這種情況了。
Hidden
默認(rèn)值visible的相反的值就是hidden。它會(huì)將所有超出盒子的所有內(nèi)容都給隱藏掉。
這對(duì)應(yīng)付使用動(dòng)態(tài)的內(nèi)容,而且可能會(huì)由于內(nèi)容溢出而引起一些布局上的問(wèn)題的確很有用。盡管如此,請(qǐng)記住用此方法隱藏的內(nèi)容將徹底的看不到(除非去查看源代碼)。 比如有的用戶設(shè)置他們的瀏覽器的默認(rèn)字體比你預(yù)期的要大些,你會(huì)將一些文字推到盒子的外面然后完全的隱藏之……
Scroll
設(shè)置一個(gè)盒子的overflow值為scroll將會(huì)隱藏掉渲染到盒子之外的內(nèi)容,但是它將會(huì)提供一個(gè)滾動(dòng)條在盒子內(nèi)部滾動(dòng),從而可以查看剩下的內(nèi)容。
值得注意的是,使用scroll將會(huì)同時(shí)產(chǎn)生水平和垂直兩個(gè)滾動(dòng)條,就算內(nèi)容只需要其中一個(gè)。
Auto
overflow的auto值很像scroll,它唯一解決的是在你不需要的時(shí)候也會(huì)出現(xiàn)滾動(dòng)條的問(wèn)題。
清除浮動(dòng)
設(shè)置overflow的一個(gè)更流行的用處是,說(shuō)也奇怪,清除浮動(dòng)。設(shè)置overflow并不會(huì)在該元素上清除浮動(dòng),它將清除自己(self-clear)。意思就是,應(yīng)用了overflow(auto或hidden)的元素,將會(huì)擴(kuò)展到它需要的大小以包圍它里面的浮動(dòng)的子元素(而不是疊了起來(lái)(collapsing)),假設(shè)未定義高度。就像這樣:
這里有更多關(guān)于浮動(dòng)的細(xì)節(jié)文章關(guān)于浮動(dòng)的一切。
跨瀏覽器的煩惱
就像CSS中的很多東東,overflow有很多的跨瀏覽器的蹊蹺的事情。比如這些:
滾動(dòng)條在盒子里面還是外面?
firefox將其放到盒子外面,而IE則將其放到里面。我認(rèn)為只有IE是對(duì)的(它應(yīng)該在里面的)。
看清楚這個(gè)明顯的不同。
IE 8 擴(kuò)展盒子的bug
IE8有很多有趣的新bug,包括一些非常嚴(yán)重的隱藏在網(wǎng)頁(yè)中的。這里有更多的關(guān)于IE8的overflow的bug的介紹。
破壞浮動(dòng)布局
IE 6, 7 和 8都會(huì)扭曲默認(rèn)的overflow visible值并將水平的擴(kuò)展一個(gè)盒子一匹配內(nèi)容(比如圖片)。 這對(duì)使用浮動(dòng)列布局的結(jié)構(gòu)非常痛苦,而且單個(gè)擴(kuò)展的列就能夠?qū)⑵渌袛D下去并使布局亂掉!
滾動(dòng)條能用CSS控制嗎?
IE過(guò)去在較老的版本中允許這樣,但是之后就收斂了。比如許多表單元素,滾動(dòng)條就不允許使用CSS控制。我在它是否是件好事情上沒有任何具體的意 見,但是我可以說(shuō),在網(wǎng)站的所有內(nèi)容上使用滾動(dòng)條是很丑陋的和俗氣的。如果你需要一個(gè)美化的滾動(dòng)條,你或許需要尋找javascript來(lái)模擬。
IE 技巧
無(wú)論是否需要,IE都會(huì)一直顯示一個(gè)垂直的滾動(dòng)條,這對(duì)預(yù)防水平跳動(dòng)是有些作用的,但并非總是可取的。要想在IE中移除它,可以在body元素中設(shè)置overflow為auto。
轉(zhuǎn)載于:https://www.cnblogs.com/zhangwei595806165/archive/2012/07/19/2599333.html
總結(jié)
以上是生活随笔為你收集整理的CSS Overflow属性详解(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DFS专题 变形课
- 下一篇: cookies的详细使用说明