IE中的空跨占据了空间

时间:2011-06-29 01:05:39

标签: css internet-explorer html space

在检查电子时,我注意到以下空跨度

<span class="x-tree-node-indent"></span>

为了不占用任何空间,我设置了以下样式

span.x-tree-node-indent
{
    left:0px;
    width:0px;
    height:0px;
    margin:0px;
    padding:0px;
}

在Chrome中,即使没有附加风格,我也得到了我想要的东西。但在IE中,我仍然可以在那里看到一块空间。有什么原因?以及如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

您是否尝试过display:none

span.x-tree-node-indent {
    display: none;
}

这应该在任何地方都一样,但我现在无法检查IE,display:none

  

此值导致元素不出现在格式化结构中(即,在可视媒体中元素不生成框并且对布局没有影响)。后代元素也不会生成任何框;元素和其内容将完全从格式结构中删除。通过在后代上设置'display'属性,无法覆盖此行为。

     

请注意,'none'的显示不会创建一个隐形框; 根本不会创建任何框。 [...]

强调我的。

如果你想自己检查一下,这是一个简单的例子:http://jsfiddle.net/ambiguous/ZrzWz/

答案 1 :(得分:0)

我已经体验过你在IE6,7及其中所描述的内容。 8。

您还必须将 line-height 设置为零。这通常适用于内联元素。

答案 2 :(得分:0)

我不能在这里重现它。这是我的代码:

span.x-tree-node-indent
{    
    left: 0px;    
    width: 0px;    
    height: 0px;    
    margin: 0px;    
    padding: 0px;
}

<BODY>
<P>left<SPAN class="x-tree-node-indent"></SPAN>right</P>
</BODY>

我在IE9中看到一个单词“leftright”,中间没有任何空格。

根据您希望实现的行为类型,您可以使用属性display:nonevisibility:hidden

答案 3 :(得分:0)

如上所述,display:none将导致项目完全脱离布局。能见度:隐藏不会;也就是说,如果你有一个20px乘20px的块,即使它被隐藏,该空间块也会继续占据空间。

您还可以将显示设置为阻止,边框设置为无和空白

其他一些项目有助于了解 - 为了让任何人以超过display:none的方式回答这个问题(如果您想要做的就是将其从空间中取出,那将会有效。)< / p>

  1. 您引用的是什么版本的IE?绝不是完全一样。
  2. 跨度的目的是什么,如果事实上你不希望它可见?
  3. 您的HTML是什么doctype?依赖于IE,可能涉及怪癖模式,您可以选择使用IE特定元标记,告诉它以IE7模式等呈现。
  4. 对于第二个,如果您只是想要有一个缩进,顾名思义,那么您可以使用CSS text-indent:10px(或其他)。如果您有其他原因,可以选择设置边距,填充区域。换句话说,从语义上讲,为什么在没有可见性等时会出现这种情况?然后导致你尝试了其他元素等。