Ответ 1
установите отображение пустой строки - это позволит строке использовать отображаемое по умолчанию значение и поэтому работает во всех браузерах
В принципе, у меня есть таблица. Onload, я устанавливаю каждую строку таблицы в display:none
, так как у меня много обработки javascript, и я не хочу, чтобы пользователь видел ее во время ее выполнения. Я установил таймер, чтобы отобразить его через некоторое время, моя проблема в том, что я не могу заставить строку таблицы отображаться как строка таблицы. Если бы я установил display:block
, он бы просто не совпал с заголовками (th). Единственное решение, которое я нашел, - display: table-row
из css2, но 7 и ниже не поддерживает это объявление.
Любое решение?
установите отображение пустой строки - это позволит строке использовать отображаемое по умолчанию значение и поэтому работает во всех браузерах
IE7 и ниже используйте display: block
для элементов таблицы; другие браузеры правильно используют table-row
, table-cell
и т.д.
Несмотря на то, что вы можете использовать браузерный интерфейс и выбирать разные отображаемые значения, гораздо проще прятать строку косвенно. Добавьте правило таблицы стилей, например:
.hidden { display: none; }
а затем измените className
элемента строки, чтобы включить или не включить класс hidden
. Когда класс будет удален, стиль display
вернется к своему значению по умолчанию, в зависимости от того, что находится в текущем браузере.
Вы также можете использовать селекторы сдерживания, чтобы скрыть несколько элементов внутри одного элемента, а затем сделать их все видимыми/скрытыми сразу, изменив один класс. Это быстрее, чем обновление каждого style
отдельно.
У меня много обработки javascript, и я не хочу, чтобы пользователь видел ее во время ее выполнения.
Они вообще не будут. Обычно изменения не отображаются на экране до тех пор, пока элемент управления не перейдет из вашего кода обратно в браузер.
Почему бы вам не поместить таблицу в div, сделать этот div-дисплей равным none
, и когда обработка будет выполнена, установите div div обратно на block
или inline block
или все, что вам там нужно..
Используйте видимость вместо отображения для вашего случая.
видимость: скрытая;
после загрузки
видимость: видимая;
узнайте больше здесь
display: unset;
При переключении между скрытием и отображением TR с использованием toggleClass будет работать следующее:
display:none;
и
display: table-row;
например.
$('#the_tr_id').toggleClass('tr_show','tr_hide');
Где:
.tr_hide {
display:none;
}
.tr_show {
display: table-row;
}