У меня нет конца веселья (sic) с jQuery.tabs. Виджет довольно лукав в том смысле, что он превращает базовый HTML примерно так
<div>
<ul>
<li>Tab #1</li>
...
</ul>
<div for panel #1>
</div>
<div for panel #2>
</div>
...
</div>
в симпатичный диалог с вкладками. (Это делается путем рестайлинга UL, а затем переключением атрибута «display» для DIV панели, чтобы показать / не показать какую панель была выбрана.)
Теперь я обнаружил, что могу избавить себя от многих неприятностей в своем проекте JS, если вставлю прокручиваемую рамку в каждую панель.
Одна проблема с удобством использования, которую я пытаюсь улучшить, состоит в том, что когда панель с вкладками становится больше, чем окно браузера, тогда у пользователя появляется слишком много полос прокрутки. Я пытаюсь избежать этой ситуации, связывая размер панели с вкладками с размером $ (окно). То есть я перехватываю и обрабатываю событие изменения размера в $ (window).
Чтобы сделать мою жизнь терпимой, все компоненты имеют сравнительный размер. Это также относится, в частности, к IFRAME (ширина 100%, высота 100%). Единственным исключением являются панели DIV, которые имеют фиксированную высоту (в пикселях). И это единственный атрибут css измерения, которым я манипулирую во время действия по изменению размера.
Все это работает в FF и Chrome, но IE6 делает что-то довольно симпатичное: пока я не влияю на ширину окна браузера (а только изменяю его высоту), только высота панели DIV меняется ; Содержимое IFRAME не изменится. В результате этого поведения невозможно укоротить панель с вкладками ниже высоты рамки. Я могу удлинить DIV, да. Но IFRAME не заполнит панель в этом случае.
Все становится хорошо, как только я сделаю малейшее изменение ширины окна браузера. В этот момент IFRAME расширяется, чтобы догнать расширенный контракт DIV или DIV и IFRAME в тандеме.
Bizarre. Я вставил бесполезные инструкции CSS, такие как «position: родственник» и «zoom: 1». Также подтолкнул дисплей с помощью «display: block». Пока радости нет.
Есть идеи?
Спасибо.