2010-03-23 4 views
0

나는 jQuery.tabs로 재미있게 끝내고있다. 위젯은 기본 HTML을 이렇게 바꿔 놓은 점에서 매우 교활합니다.벙어리 IE6 크기 조정 동작 - 누군가와 몇 종을 울리길 바란다

<div> 
    <ul> 
     <li>Tab #1</li> 
     ... 
    </ul> 
    <div for panel #1> 
    </div> 
    <div for panel #2> 
    </div> 
    ... 
</div> 

을 귀여운 탭 대화 상자로 만듭니다. (이것은 UL을 다시 작성한 다음 패널 DIV에 대한 "표시"속성을 토글하여 어떤 패널이든 표시하거나 표시하지 않음). 이제 JS 프로젝트에서 많은 어려움을 겪을 수 있음을 발견했습니다. 스크롤 가능한 IFRAME을 각 패널에 삽입하십시오.

하나의 사용성 문제 나는 탭 패널이 브라우저 창보다 커지면 사용자가 너무 많은 스크롤바로 끝납니다. 나는이 상황을 피하기 위해 탭 패널의 크기를 $ (윈도우)의 크기에 연결합니다. 즉, $ (window)에 resize 이벤트를 잡아서 처리합니다.

내 인생을 견딜 수 있도록 모든 구성 요소는 상대적으로 크기가 있습니다. 특히 IFRAME (100 % 너비, 100 % 높이)의 경우에도 마찬가지입니다. 유일한 예외는 고정 된 높이 (px)의 패널 DIV입니다. 그리고 이것은 크기 조정 작업 중에 조작하는 유일한 치수 CSS 속성입니다.

이 모든 것은 FF와 Chrome에서 잘 작동하지만 IE6은 다소 귀엽다. 브라우저 창 너비에는 영향을 미치지 않지만 높이는 변경하지 않는 한 패널 DIV 만 변경된다. 신장; 포함 된 IFRAME은 변경되지 않습니다. 이 동작의 결과로 IFRAME 높이 아래의 탭 패널을 단축 할 수 없습니다. 나는 DIV를 길게 할 수있다. 그렇다. 그러나 IFRAME은이 경우 패널을 채우지 않습니다.

브라우저 창의 너비를 조금이라도 변경하면 모두 좋게됩니다. 그 순간 IFRAME은 확장 된 DIV 또는 DIV와 IFRAME 계약을 따라 잡습니다.

엽기. "position : relative"및 "zoom : 1"과 같은 쓸모없는 CSS 지침을 삽입했습니다. 또한 "display : block"으로 디스플레이를 움직입니다. 지금까지 기쁨이 없습니다.

아이디어가 있으십니까?

감사합니다.

답변

0

신경 쓰지 마세요. 영감을 얻었습니다. jQuery.tabs는 패널을 완전히 IFRAME으로 만들지 않아도됩니다. 즉, 랩핑 DIV를 제거 할 수 있으므로 랩된 IFRAME의 자동 상대 치수 (높이 = 100 %, 폭 = 100 %)를 기리기 위해 IE6에 의존 할 필요가 없습니다. IFRAME은 이제 높이가 고정되어 있으며 resizeHandler에 의해 직접 크기가 조정됩니다. 인생은 이제 4 개의 브라우저에서 훌륭합니다. 이피!

관련 문제