Глупое поведение IE6 по изменению размера - надеюсь, что кто-то звонит в колокола - PullRequest
0 голосов
/ 23 марта 2010

У меня нет конца веселья (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». Пока радости нет.

Есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 24 марта 2010

Неважно. Просто у меня появилось вдохновение: jQuery.tabs не возражает, если я сделаю панели откровенными. То есть я могу покончить с переносом DIV и, таким образом, не нужно полагаться на IE6, чтобы соблюдать автоматические относительные размеры (высота = 100%, ширина = 100%) упакованного IFRAME. IFRAME теперь имеет фиксированную высоту px и изменяется непосредственно моим resizeHandler. Жизнь теперь хороша в 4 браузерах. Yipee!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...