在检查电子时,我注意到以下空跨度
<span class="x-tree-node-indent"></span>
为了不占用任何空间,我设置了以下样式
span.x-tree-node-indent
{
left:0px;
width:0px;
height:0px;
margin:0px;
padding:0px;
}
在Chrome中,即使没有附加风格,我也得到了我想要的东西。但在IE中,我仍然可以在那里看到一块空间。有什么原因?以及如何解决这个问题?
答案 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:none
和visibility:hidden
。
答案 3 :(得分:0)
如上所述,display:none将导致项目完全脱离布局。能见度:隐藏不会;也就是说,如果你有一个20px乘20px的块,即使它被隐藏,该空间块也会继续占据空间。
您还可以将显示设置为阻止,边框设置为无和空白
其他一些项目有助于了解 - 为了让任何人以超过display:none的方式回答这个问题(如果您想要做的就是将其从空间中取出,那将会有效。)< / p>
对于第二个,如果您只是想要有一个缩进,顾名思义,那么您可以使用CSS text-indent:10px(或其他)。如果您有其他原因,可以选择设置边距,填充区域。换句话说,从语义上讲,为什么在没有可见性等时会出现这种情况?然后导致你尝试了其他元素等。