Бага с display:block на теге tr
От: Vain Россия google.ru
Дата: 30.05.09 20:24
Оценка:
Пытаюсь сделать небольшой expand/collapse, но тут же наткнулся на багу с отображением.
Здесь тестовый html.
После сворачивания/разворачивания подтаблица теряет аттрибут/стиль width=100%.

В IE6 всё впорядке, глючат только Opera 9.63 и Mozilla 3.0.10.
В чём проблема?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
display:block tr tag bug
Re: Бага с display:block на теге tr
От: Vain Россия google.ru
Дата: 31.05.09 07:20
Оценка:
Здравствуйте, Vain, Вы писали:

V>В IE6 всё впорядке, глючат только Opera 9.63 и Mozilla 3.0.10.

Кому интересно, как оказалось сей документ говорит о том, что надо исползовать что-то вроде стиля "display:table-row". Но вот беда, оно не работает в IE6. А ещё говорят отделять представление от данных, ну-ну.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Бага с display:block на теге tr
От: . Великобритания  
Дата: 31.05.09 12:43
Оценка:
Vain wrote:

> В IE6 всё впорядке, глючат только Opera 9.63 и Mozilla 3.0.10.

> В чём проблема?
Проблема, как в большинстве случаев, в IE. Используй какую-нибудь библиотеку типа jQuery, которая разруливает эту ситуацию.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Бага с display:block на теге tr
От: ASPa Россия  
Дата: 02.06.09 07:19
Оценка: 10 (3)
Здравствуйте, Vain, Вы писали:

V>Пытаюсь сделать небольшой expand/collapse, но тут же наткнулся на багу с отображением.

V>Здесь тестовый html.
V>После сворачивания/разворачивания подтаблица теряет аттрибут/стиль width=100%.
V>
V>В IE6 всё впорядке, глючат только Opera 9.63 и Mozilla 3.0.10.
V>В чём проблема?

Vain, действительно, отображение строк таблиц в разных браузерах происходит по-разному, где-то это может быть блочный элемент (и тогда мы можем для отображени задать display: block; , где-то необходимо указывать что это строка таблицы display: table-row;

Могу предложить Вам универсальный способ (без использования дополнительных библиотек типа jQuery, как тут уже советовали):
чтобы скрыть строку: добавляйте к ней класс новый, например class='invisible'
в css файле для этого класса пишите стиль:
.invisible {
display: none;
}

А когда нужно отобразить строку, то убираете у неё этот класс (И браузер автоматически применит тот способ отображения, который он использует — table-row или block)
html table-row table block display
Re[2]: Бага с display:block на теге tr
От: Vain Россия google.ru
Дата: 03.06.09 09:17
Оценка: 4 (1)
Здравствуйте, ASPa, Вы писали:

ASP>А когда нужно отобразить строку, то убираете у неё этот класс (И браузер автоматически применит тот способ отображения, который он использует — table-row или block)

Вот написал две функции для этого если кому интересно:
function addClassName(item,name)
{
  if(item.className.length == 0)
  {
    item.className = name;
  }
  else
  {
    item.className += "; "+name;
  }
}

function removeClassName(item,name)
{
  var nameOffset = item.className.indexOf(name);
  if(nameOffset == -1)
  {
    return false;
  }

  if(nameOffset > 1 && item.className.substr(nameOffset-2,2) === "; ")
  {
    item.className = item.className.replace("; "+name,"");
  }
  else
  {
    item.className = item.className.replace(name,"");
  }

  return true;
}
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.