天天看點

讓position:absolute超出DIV溢出隐藏

通常,為了讓DIV子元素超出部分隐藏,都是在父元素設定overflow:hidden,這樣即可防止子元素撐開父元素,使子元素能夠溢出隐藏!

但是,對于position:absolute定位的子元素,僅僅使用overflow:hidden沒辦法将其溢出部分隐藏,需要在父元素上也加上一個定位position:relative;才能将含有 position:absolute屬性的子元素進行溢出隐藏!

效果:

讓position:absolute超出DIV溢出隐藏

代碼:

<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

繼續閱讀