Как вернуться к нормальному состоянию после отображения: нет для строки таблицы

В принципе, у меня есть таблица. Onload, я устанавливаю каждую строку таблицы в display:none, так как у меня много обработки javascript, и я не хочу, чтобы пользователь видел ее во время ее выполнения. Я установил таймер, чтобы отобразить его через некоторое время, моя проблема в том, что я не могу заставить строку таблицы отображаться как строка таблицы. Если бы я установил display:block, он бы просто не совпал с заголовками (th). Единственное решение, которое я нашел, - display: table-row из css2, но 7 и ниже не поддерживает это объявление.

Любое решение?

Ответ 1

установите отображение пустой строки - это позволит строке использовать отображаемое по умолчанию значение и поэтому работает во всех браузерах

Ответ 2

IE7 и ниже используйте display: block для элементов таблицы; другие браузеры правильно используют table-row, table-cell и т.д.

Несмотря на то, что вы можете использовать браузерный интерфейс и выбирать разные отображаемые значения, гораздо проще прятать строку косвенно. Добавьте правило таблицы стилей, например:

.hidden { display: none; }

а затем измените className элемента строки, чтобы включить или не включить класс hidden. Когда класс будет удален, стиль display вернется к своему значению по умолчанию, в зависимости от того, что находится в текущем браузере.

Вы также можете использовать селекторы сдерживания, чтобы скрыть несколько элементов внутри одного элемента, а затем сделать их все видимыми/скрытыми сразу, изменив один класс. Это быстрее, чем обновление каждого style отдельно.

У меня много обработки javascript, и я не хочу, чтобы пользователь видел ее во время ее выполнения.

Они вообще не будут. Обычно изменения не отображаются на экране до тех пор, пока элемент управления не перейдет из вашего кода обратно в браузер.

Ответ 3

Почему бы вам не поместить таблицу в div, сделать этот div-дисплей равным none, и когда обработка будет выполнена, установите div div обратно на block или inline block или все, что вам там нужно..

Ответ 4

Используйте видимость вместо отображения для вашего случая.

видимость: скрытая;

после загрузки

видимость: видимая;

узнайте больше здесь

Ответ 5

Возвращает значение по умолчанию:

display: unset;

Ответ 6

При переключении между скрытием и отображением TR с использованием toggleClass будет работать следующее:

display:none;

и

display: table-row;

например.

$('#the_tr_id').toggleClass('tr_show','tr_hide');

Где:

.tr_hide {
    display:none;
}

.tr_show {
    display: table-row;
}