空DIV高度IE7

osh*_*nen 3 html css xhtml internet-explorer internet-explorer-7

更新1:

我发现当width:100%从div中删除时,如果它不包含任何内容,我得到的结果我想要它的高度为0的内容.但是,我需要div具有100%的宽度,这由于某种原因迫使它具有没有内容的高度.

这是问题的一个方面.如果您使用IE7进入以下链接,可能只能在IE6及更低版本上看到问题.

http://jsfiddle.net/RQeeg/2/

原始问题:

我有一个空的div,由于某种原因有一个高度.

在Chrome上,div除非包含内容,否则根本不显示.另一方面,IE7显示div,即使它没有内容.

所以基本上,如果它是空的,我希望它的高度为0px,如果它有内容,则自动调整它的高度.如果它的宽度不是100%,那么它的确如何表现.

thi*_*dot 6

在您使用的启示后更新position: fixed:

要在此处支持IE7,您必须使用两个div.我有理由相信这是不可能的(除非你更喜欢坚持使用一个div并使用JavaScript修复).

请参阅:
没有内容:http://jsfiddle.net/r3P8D/2/
内容:http://jsfiddle.net/r3P8D/3/

发生此错误的原因是,一旦添加某些属性(如width: <not auto>或)position: fixed,就会触发hasLayout该元素.一旦触发hasLayout,就会发生此错误.

因为你需要position: fixed(..甚至不能在IE6中工作,但我离题),没有办法避免hasLayout,因此无法避免这个错误.

所以,我已经给你了我能想到的最好的解决方法.


老答案:

但是,我需要div的宽度为100%

根本就不要用width: 100%.

然后div将具有默认width值,即auto,将采用"完整可用宽度".width: auto不一样width: 100%,但对这个问题的目的,它的外观一样直观.

在Chrome和IE6/7中 查看此内容(不含内容):http://jsfiddle.net/r3P8D/
在Chrome和IE6/7中查看此内容(含内容):http://jsfiddle.net/r3P8D/1/

从我对你的问题的理解,这正是你所要求的.

  • 你应该包括你在测试用例中使用`position:fixed`的事实 - 这完全改变了事情,而不仅仅是一些一次性的细节.你确实说过你需要`width:100%`,但你没有声明*为什么*.大多数时候,`width:auto`做同样的事情.叹.我会更新我的答案. (3认同)