0

有一个 div 具有内部内容,一个 div 具有在 div 内部的边框。不知何故,这个 div 被扩展为包含下一个 div。这让我大吃一惊。

<div style="background: yellow;">
  <div>
    <div style="border: 1px solid black; background: green">green background</div>
  </div>
</div>
<div style="margin-top: 100px;">
  IE gives me a yellow background, unless i take away the border of the green 
  background div.
</div>

我想知道这是什么原因以及如何解决它。

4

5 回答 5

2

听起来你正处于过渡的怪癖模式,这是邪恶的。

严格解决了这个问题。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
于 2008-12-15T09:30:22.110 回答
0

一种解决方案是将“位置:相对”放在任何地方,但这会破坏我页面中的其他内容。

于 2008-12-15T09:26:24.117 回答
0

您在内部 div 中缺少分号。如果省略最后一个分号,我会看到一些非常奇怪的行为。

<div style="border: 1px solid black; background: green;">green background</div>

不知道你有什么版本的 IE,但这适用于 IE7

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Test</title>
  </head>  
  <body>
    <div style="background: yellow;">
     <div>
        <div style="border: 1px solid black; background: green;">green background</div>
      </div>
    </div>
    <div style="margin-top: 100px;">
      IE gives me a yellow background, unless i take away the border of the green 
      background div.
    </div>
  </body>
</html>
于 2008-12-15T09:31:36.477 回答
0

您需要为第一个 div “提供布局”。您最好使用 IE6 目标样式来执行此操作:

<style>
   * html .haslayout {
       display:inline-block;
   }
</style>

...

<div style="background: yellow;" class="haslayout">

这是 hasLayout 属性的一个已知 IE6 问题。在此处阅读更多信息 - http://www.satzansatz.de/cssd/onhavelayout.html

于 2008-12-15T09:57:50.760 回答
0

答案很简单,因为你嵌套了不同的 div,它们没有高度,所以 IE6 存在溢出。做这个:

<div style="background: yellow;height: 1%;">

它会工作得很好。

于 2008-12-15T22:44:05.660 回答