如何在显示后恢复正常:没有表行

Fur*_*lon 41 css

基本上,我有一张桌子.Onload,我设置表的每一行,display:none因为我有很多javascript处理要完成,我不希望用户在完成时看到它.我设置了一个计时器,以便在一段时间后显示它,我的问题是我无法让表格行显示为表格行.如果我设置display:block,它将不会与标题(th)对齐.我发现的唯一解决方案是display: table-row来自css2,但是7及以下版本不支持此声明.

有解决方案吗

Ray*_*Ray 62

将显示设置为空字符串 - 这将允许该行使用其默认显示值,因此适用于所有浏览器

  • 正确的方法是使用`display:none`属性分配`class`然后在完成时删除`class`名称 (18认同)
  • 这个答案与@Romhein 的评论一起构成了完美的解决方案!+1 对两个... (2认同)

bob*_*nce 7

IE7及以下display: block用于表格元素; 其他浏览器正确使用table-row,table-cell等等.

虽然您可以浏览器嗅探并选择不同的显示值,但间接隐藏行更容易.添加样式表规则,如:

.hidden { display: none; }
Run Code Online (Sandbox Code Playgroud)

然后更改className行元素以包括或不包括hidden类.删除类后,display样式将跳回其默认值,无论当前浏览器上是哪一个.

您还可以使用包含选择器隐藏一个元素中的多个元素,然后通过更改一个类使它们全部可见/隐藏.这比style单独更新每个更快.

我有很多javascript处理要完成,我不希望用户在完成时看到它.

反正他们一般都不会.在控件从您的代码传递回浏览器之前,更改通常不会在屏幕上呈现.