2010-06-16 109 views
4

當div在另一個div中時,如何獲得div寬度,其中「overflow:hidden;」 ?jquery,溢出時獲取div寬度:hidden;

我試圖設置溢出爲自動和使用$(「#divselector」)。寬度()後,但我總是得到父div的寬度!

例:

HTML:

<div id="content"> 
      <div id="item">content content content ...</div> 
</div> 

CSS:

#content 
{    
    width: 760px; 
    height: 100%; 
    overflow: hidden; 
    display: block; 
    position: relative; 
    cursor: move; 
} 

詳細信息:使用IE 6的工作,但在IE 8沒有......

+0

你是說#item是滿溢#內容,並且要溢出的寬度是多少? – Skilldrick 2010-06-16 19:22:49

+0

是的。但是,當我把$(「#item」)。寬度(),返回父div的寬度的值,但子div溢出。 – Fabio 2010-06-16 19:27:24

回答

7

默認情況下, div的寬度將擴大到父母的寬度。

如果您在div中浮動項目,該項目將不再展開爲父項的寬度。

以下內容添加到您的樣式:

#item { float: left; } 

看到這是如何工作的:http://jsbin.com/umabe/edit

+1

+1 - 這工作。正如給位置:絕對或顯示:行內塊(用於支持的瀏覽器)。 'div'將會擴展到超出父級的大小,並給出正確的值。 – user113716 2010-06-16 19:35:54

+0

在不支持的瀏覽器中,position:absolute會導致#content出現在意外的位置並返回正確的值。顯示:內嵌塊會導致#內容顯示,但值不正確。在支持的瀏覽器中,您將避免經常與浮動相關的麻煩。 – Mervyn 2010-06-16 19:45:06

+0

'display:inline-block'得到很好的支持並解決了這個問題。當檢索動態維度是項目的重要方面時,我寧願不使用浮動。 – Gavin 2013-09-18 07:29:41