空DIV高度IE7

时间:2011-06-20 14:31:00

标签: html css internet-explorer xhtml internet-explorer-7

更新1:

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

这是问题的一个方面。如果你使用IE7进入以下链接,你可能只会看到问题,可能是在IE6及以下版本。

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

原始问题:

我有一个空div,出于某种原因有高度。

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

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

4 个答案:

答案 0 :(得分:6)

在您使用position: fixed

的消息后更新

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

查看:
没有内容:http://jsfiddle.net/r3P8D/2/
内容为:http://jsfiddle.net/r3P8D/3/

发生此错误的原因是,一旦您添加某些属性(例如width: <not auto>position: fixed),就会触发hasLayout on the element。一旦触发hasLayout,就会发生此错误。

因为您需要position: fixed..which doesn't even work in IE6,但我离题了),所以无法避免hasLayout,因此无法避免此错误。

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


旧回答:

  

但是,我需要div才能拥有   宽度为100%

只是不要使用width: 100%

div将具有默认的width值,即auto,因此需要“完整的可用宽度”。 width: auto与<{1}}的不一样,但就本问题而言,它在视觉上看起来是一样的。

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

根据我对你的问题的理解,这正是你所要求的。

答案 1 :(得分:1)

这是一个烦人的IE漏洞。

我想我过去已经完成了它:

div{
    overflow:hidden;
    min-height:0;
    display: inline;   
}

在这里演示:http://jsfiddle.net/tomgrohl/YfbJt/

如果这影响了您的布局,最好使用一个类,当您向div添加内容时添加该类(如果您动态添加它):

div
{
    height:0;
    overflow:hidden;    
}

div.active
{
    height: auto;
}

答案 2 :(得分:0)

我认为IE 7给出了默认高度,除非你提供一个值。

尝试将高度设置为0px。

答案 3 :(得分:-3)

将其添加到CSS文件的开头:

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

这将标准规则应用于元素,并消除了跨浏览器的不一致性。


如果它仍然给你一个错误,请尝试在重置下添加:

div{
width: 0px;
height: 0px;
}