As células da tabela IE7 tornadas invisíveis por CSS não podem ser visíveis por alterações posteriores de classe (??)
Aqui estão dois arquivos de teste:
http://gutfullofbeer.net/good-table.html
http://gutfullofbeer.net/bad-table.html
A marcação nessas duas páginas é quase a mesma. Há uma mesa com duas colunas. o<th>
e<td>
todos os elementos de uma coluna (a segunda) recebem a classe "lixo".
Na página "boa", ao carregá-la, você verá uma caixa de seleção desmarcada na parte superior. Se você marcar a caixa de seleção, a segunda coluna deve desaparecer. Se você desmarcar, a segunda coluna volta. Na página "inválida", a caixa de seleção começa marcada. Desmarcá-lo não tem efeito no IE7, embora funcione em outros navegadores que não são possuídos pelo mal fundamental.
A caixa de seleção está conectada a uma pequena rotina Javascript que apenas adiciona ou remove a classe "compact" do<table>
etiqueta, rótulo, palavra-chave. Há uma folha de estilo que inclui isso:
table.compact th.junk, table.compact td.junk {
display: none;
}
Assim o quedevemos acontecer é o que acontece na página "boa". No entanto, parece que no IE7 (talvez 6 também) se os elementos da tabelacomeçar tal que quandoinicialmente processados para serem invisíveis, eles nunca serão vistos, independentemente das alterações subseqüentes no DOM que trariam novas regras de estilo em vigor e as deixariam visíveis. (Este parece ser um problema com<table>
peças em particular; Estou usando o mesmo mecanismo em outro lugar com outros elementos e todos eles funcionam bem.)
Então, a pergunta é: alguém sabe de algum truque - por mais revoltante - que possa ser usado para contornar esse comportamento idiota? Obviamente, eu poderia tentar organizar o IE7 para iniciar suas visualizações com o conjunto de controle de alternância relevante para que as células da tabela fiquem visíveis, mas no meu caso, isso acontece em torno de uma tabela que é produzida como uma resposta AJAX e, portanto, seria um grande problema. bagunça que eu prefiro evitar. (A tabela também é realmente uma tabela; é uma exibição de informações tabulares, não um hack de layout.)
Pesquisei no Google e não encontrei nada, o que não deveria surpreender se você considerar quantos hits obtém das pesquisas "bug de layout do IE7".