2012-06-23 131 views
0

我有一个不可能的时间border-collapse为我工作。我正在使用的页面中有一个表格。该表有2列,一个用于标签,另一个用于数据。有时没有要显示的数据,但我仍然需要对表格行和标签列进行折叠,因为我有一个可能需要将数据写入数据列的JQuery脚本。换句话说,无论数据是否存在,我都需要将表格行作为占位符来折叠。如果没有数据,我希望该行崩溃。CSS边框崩溃不在<table>

在下面的html中,visibility:hidden正在工作,因为我不会看到标签'Condition:',但该行不会折叠。我已经尝试在FireFox 13,Safari 5和IE 8中查看它。所有三个都显示相同的问题 - 即使不显示任何内容,行也不会显示ccollapses。

#data 
{ 
    font-size: 95%; 
} 
#data table 
{ 
    border-collapse: collapse; 
    margin-top: 15px; 
    margin-bottom: 15px; 
} 
#data table td 
{ 
    padding-left: 5px; 
} 


<div id="data"> 

.... 

    <table> 
     <tr style="visibility:hidden;"> 
      <td><div class="datalabel">Condition:</div></td> 
      <td class="datainfo"></td> 
     </tr> 
    </table> 

.... 

</div> 

我还需要做些什么才能做到这一点?我希望它是跨浏览器兼容的。我试图支持IE7及以上版本。我猜有人要给我地狱首先使用表...;)

回答

5

visibility属性确定一个给定的元素是否可见 与否(能见度= “可见|隐藏”)。但是,如果将可见性设置为 隐藏,则隐藏的元素仍将占用页面布局的 中的相同位置。

Display VS Visibility

使用display:none;隐藏和display:block;显示

<table style="border-collapse:collapse;"> 
     <tr style="display:none;"> 
      <td><div class="datalabel">Condition:</div></td> 
      <td class="datainfo"></td> 
     </tr> 
    </table> 

注意border-collapse:collapse;是在情况下使用,在这里你有集装箱指定边界和所包含的,你想边框将被显示一次。

+0

嘿! 'display:none'工作!我还没有尝试过使用JQuery中的display:block来打开它。谢谢CoDe或Dict! – rwkiii

+0

好朋友,这是你的情况的正确选择。 – Rab

+0

顺便说一句,你是说我不需要使用'border-collapse'来实现这个功能?需要'display:none'的行不是任何顺序。可能是第一排,第三,第四或根本没有。 – rwkiii

0
<table border="0" cellpading="0" cellspacing="0"> 

,并尝试使用和&nbps;或类似的东西,如果你没有数据小区

类似:

<table border="0" cellpading="0" cellspacing="0"> 
    <tr style="visibility:hidden;"> 
     <td><div class="datalabel">Condition:</div></td> 
     <td class="datainfo">&nbsp;</td> 
    </tr> 
</table> 
+0

亚历克斯,我照你所说的做了,但隐藏的行仍占用垂直空白。此外,我编辑我的问题,包括我使用的实际CSS。我从HTML标记中取出了样式属性。 – rwkiii