2009-11-11 46 views
1

以此頁爲例,是否可以將一個孩子插入到mydiv中,這樣會導致mydiv的高度超過500px?兒童是否可以在標準模式下影響其父母的身高?

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<body> 
    <div id="mydiv" style="width:500px;height:500px;border:4px solid red"> 
     <!-- place content here --> 
    </div> 
</body> 
</html> 

 

我找不到任何會。例如,下面的這種情況我告訴innerDiv高度爲100%。它會發現它的父母是500px高,因此也是500px高。最終的結果是內容爲800像素高,而內容流溢超越mydiv,與mydiv仍然堅定500px的身材:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<body> 
    <div id="mydiv" style="width:500px;height:500px;border:4px solid red"> 
     <img src="myimage.jpg" width="400" height="300" /> 
     <div style="width:100%;height:100%;background:yellow"> 
      hi 
     </div> 
    </div> 
</body> 
</html> 
 

IE怪癖運行模式將導致mydiv增長,以適應其子在許多情況下。看起來標準模式顯然不會增長。情況總是如此嗎?

我正在測試這主要在IE8和FF3.5在Windows上,IE8運行在所有可能的模式。

回答

3

否:在標準模式下,容器的默認overflow屬性應設置爲visible,這意味着溢出的內容將在容器的剪貼區域外呈現。沒有這樣的overflow選項來增加容器的尺寸以匹配它的孩子。你可以看到更多的溢出here

然而,有一些容器的增長方法來匹配其子的大小。在標準模式下,正確的做法是設置CSS屬性min-height而不是屬性height

由於高度執行行爲不會在IE6發生,人們通常最終會同時設置min-height對符合標準的瀏覽器,然後或者設置爲height IE只conditional comments或用下劃線_前綴屬性名所以IE6會使用它,但其他瀏覽器會忽略它。

所以你的DIV將類似於

<div id="mydiv" style="width:500px;min-height:500px;_height:500px;border:4px solid red"> 

你可以找到min-heighthere更多的信息和快速谷歌/ Bing搜索爲min-height IE6會給你你需要的所有答案。

+0

也許我字面上解釋了我的問題。在我的情況下,我實際上希望父div不要偏離500px。如果其子女加起來超過500px,我希望他們超出父母。標準模式瀏覽器似乎總是強制執行此操作。我很好奇,如果人們知道標準模式瀏覽器會導致父母成長爲包含其子女,那麼可能存在邊緣情況。 如果我想要父母長大以適應其子女,這聽起來像是最低高度是要走的路。 – 2009-11-11 01:04:08

+0

@Matt抱歉!我編輯了答案(添加了第1段)以更好地匹配問題:) – 2009-11-11 01:34:12

相關問題