2011-01-17 2 views
1

열을 숨기거나 표시하는 표가있는 테이블이 있습니다. 각 td에는 "column"및 "columnX"클래스가 있으며 여기서 X는 열 번호입니다. CSS는 다음과 같습니다.Old IE의 CSS가 동적으로 업데이트되지 않습니다.

.column { display: none; } 
table.show1 .column1 { display: block; } 
table.show2 .column2 { display: block; } 

표가 숨겨진 상태에서 시작되어 사용자가 켭니다. 이 경우 클래스가 표시되는 열에 따라 "show1"또는 "show2"와 같은 테이블에 추가됩니다.

FF, 크롬 및 IE8에서 잘 작동합니다. 그러나 IE6/7에는 "열"이 "표시 : 블록"이되지 않는 문제가 있습니다. 그러나 개발자 툴바에 가서 CSS 규칙을 전환하면

table.showX .columnX {display: block; } 

잘 작동합니다. 이러한 오래된 브라우저는 자바 스크립트를 통해 테이블을 업데이트 할 때 알지 못합니다. 또한, "javascript가 아닌"로 시작하는 테이블에 "show0"클래스를 추가하면 IE6/7에서 정상적으로 작동합니다.

알려진 해결 방법은 무엇입니까?

답변

0

음, 먼저 표 셀의 올바른 표시 값은 이 아니고 "블록"입니다. 그것은 "테이블 셀"입니다. 어쨌든 IE의 이전 버전에 대해서는 논란의 여지가 있습니다. 왜냐하면 그런 종류의 멋진 것들을 실제로 이해하지 못하기 때문입니다. 테이블 렌더링 처음, <td>의 열 때, 경우 (그리고 :

이제 다음 문제는 오래된 IE (6, 7,하지 8) 처음에 테이블 셀 렌더링이 재미있는 기능을 가지고 있다는 사실이다 상단의 <th>) 요소가 보이지 않으면 DOM에 대한 이후 변경 사항이 이 아니며으로 표시됩니다. 그렇게 바보 같아요. 사실 I've asked the same question here입니다.

다음에 HTML을 먼저 렌더링하면 일부 코드가 다시 나타나서 보이지 않는 적절한 열을 만들 수 있도록 문제를 해결하기 위해 일부 JavaScript를 페이지에 놓습니다. 그들이 눈에 보이기 시작하면, 나중에 다시 켜고 끌 수 있습니다.

+0

어떻게 문제를 해결 했습니까? 또한 가시성 설정 : 숨김 설정은 수정 사항으로 제안되었지만 작동하지 않는 것처럼 보입니다. –

+0

아니, 그 제안은 나를 위해 일한. 내가 끝내기 시작한 것은 내가 여기서 설명하는 것입니다. 보이지 않는 것으로 간주되는 열은 가시적으로 시작한 다음 일부 자바 스크립트를 실행하여 전환합니다. 그것은 우스꽝 스럽지만 그것은 내가 그 작품에 대해 알고있는 유일한 것입니다. (더 나은 것을 발견하면 알려주세요 !!) – Pointy

+0

아, 또한 "가시성"이 효과가 있었다고하더라도, 아마도 당신이 원하는 것이 아닐 것입니다. 필자의 경우, 나는 완전히 사라져야 할 기둥들을 정말로 사 들였다. '가시성 : 숨김'을 사용하면 화면에 여전히 여유 공간이 생깁니다. – Pointy

관련 문제