2009-04-20 6 views
0

이 같은 CSS 선택기의 몇 가지있다을 적용하도록 Internet Explorer를 강제 할 수 있습니다. 그러나, 커서를 조금 움직일 때까지 변경된 스타일은 브라우저 (IE7, 기타)에 표시되지 않습니다. 스타일을 다시 평가하도록하려면 어떻게해야합니까?어떻게 CSS 스타일

편집 : 원래 IE6은 사용하지 않았지만 IE7은 사용했습니다. 그래도 문제는 여전히 남아 있습니다.

답변

2

강제로 다시 렌더링하는 여러 가지 해킹 방법이 있습니다.

someElement.appendChild(document.createTextNode(' ')); 
someElement.removeChild(someElement.lastChild); 

도이 경우에 작동한다고 : script.aculo.us은 다음과 같습니다 forceRerendering (자연스럽게)라는 메소드가 있습니다.

1

IE6은 특성 또는 자식 선택기를 지원하지 않으므로 전혀 작동하지 않아야합니다. ie7-js을 사용하고 있습니까?


이제 알겠습니다. IE의 버그처럼 보입니다 (divtitleth이고 sortOrder은 동일한 문제가 있음). innerHTML을 수정

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
    <style> 
     th[sortOrder="0"] {color:red} 
     th[sortOrder="1"] {color:blue} 
    </style> 
    <script> 
     function changeSortOrder() { 
     // swap the orders so that blue is actually red and vice versa 
     document.getElementById("hdr0").setAttribute("sortOrder","1"); 
     document.getElementById("hdr1").setAttribute("sortOrder","0"); 
     //document.getElementById("hdr0").innerHTML += ""; 
     //document.getElementById("hdr1").innerHTML += ""; 
     } 
    </script> 
    </head> 
    <body onload="changeSortOrder()"> 
    <table class="SearchCustomerResults"> 
     <thead><tr> 
     <th sortOrder="0" id="hdr0">red</th> 
     <th sortOrder="1" id="hdr1">blue</th> 
     </tr></thead> 
    </table> 
    </body> 
</html> 

선은 버그를 해결하는 것. 하지만 Google에서 참조를 찾을 수 없습니다.

+0

죄송합니다. IE7을 사용하고 있습니다. 문제는 여전히 남아 있지만 – erikkallen

0

비슷한 문제가 있습니다. 새 div를 삽입 한 후 여백이 적용되지 않았습니다.
다음 코드 도움 :
   의 setTimeout (함수() {. newDiv.addClass ('tratata') removeClass ('tratata');}, 0);     // jquery 구문