通常,為了讓DIV子元素超出部分隱藏,都是在父元素設置overflow:hidden,這樣即可防止子元素撐開父元素,使子元素能夠溢出隱藏!
但是,對於position:absolute定位的子元素,僅僅使用overflow:hidden沒辦法將其溢出部分隱藏,需要在父元素上也加上一個定位position:relative;才能將含有 position:absolute屬性的子元素進行溢出隱藏!
效果:
代碼: <style> .box{ width:200px; height:150px; overflow:hidden; border:2px solid #000; float:left; margin-right:20px; } .relative{ position:relative; } .div{ width:200px; height:100px; background:#FF5400; margin-top:100px; position:absolute; } .zi{ width:200px; height:300px; background:#FF0000; } </style> <div class="box"> 高300px的子元素溢出隱藏 <div class="zi"></div> </div> <div class="box"> 不帶relative <div class="div"></div> </div> <br><br><br><br><br><br> <div class="box relative"> 帶上relative <div class="div"></div> </div>
附:
1、CSS overflow屬性,overflow 屬性規定當內容溢出元素框時發生的事情,所有主流瀏覽器都支持 overflow 屬性。任何的版本的 Internet Explorer (包括 IE8)都不支持屬性值 "inherit"。
這個屬性定義溢出元素內容區的內容會如何處理。如果值為 scroll,不論是否需要,用戶代理都會提供一種滾動機制。因此,有可能即使元素框中可以放下所有內容也會出現滾動條。 默認值:visible
hidden:內容會被修剪,並且其余內容是不可見的。
scroll:內容會被修剪,但是瀏覽器會顯示滾動條以便查看其余的內容。
auto:如果內容被修剪,則瀏覽器會顯示滾動條以便查看其余的內容。
inherit:規定應該從父元素繼承 overflow 屬性的值。
2、position屬性,position 屬性規定元素的定位類型。所有主流瀏覽器都支持 position 屬性。任何的版本的 Internet Explorer (包括 IE8)都不支持屬性值 "inherit"。
這個屬性定義建立元素布局所用的定位機制。任何元素都可以定位,不過絕對或固定元素會生成一個塊級框,而不論該元素本身是什么類型。相對定位元素會相對於它在正常流中的默認位置偏移。默認值:static
absolute:生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
fixed:生成絕對定位的元素,相對於瀏覽器窗口進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
relative:生成相對定位的元素,相對於其正常位置進行定位。因此,"left:20" 會向元素的 LEFT 位置添加 20 像素。
static:默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。
inherit:規定應該從父元素繼承 position 屬性的值。
來源:http://blog.32xp.com/positionabsolutediv-533.html