2009-11-05 4 views
3

Моя страница представляет собой конструкцию с тремя колонками с заголовком. Это хорошо проявляется в IE6 и IE7 (насколько я знаю). Я использую javascript для определения определенных элементов страницы в соответствии с окном браузера. Однако в IE8 он пытается оставить пробелы для полос прокрутки, даже если они не отображаются, что приводит к скачкообразному эффекту при изменении размера (страница чередуется между оставлением пробела, а затем нет).IE8 Уходящее пространство для ненужных полос прокрутки

Если я установил переполнение: прокрутка в моем css он решает проблему, однако я не хочу, чтобы полосы прокрутки отображались, когда они не нужны, поэтому это лишь временное исправление.

Есть ли способ, чтобы моя страница могла растягиваться до максимальной ширины и высоты (с помощью javascript) и только при необходимости получать полосы прокрутки?

+0

с помощью JavaScript для изменения размеров столбцов на страницу-ширины противный. Не видя структуру вашей страницы, сложно предложить более удобный способ сделать это с помощью CSS (следовательно, комментарий и не отвечать), но вам следует исследовать с помощью CSS. Я всегда нашел http://www.cssplay.co.uk/, чтобы стать отличным ресурсом для таких вещей. – MalphasWats

+0

это комбинация css и javscript. единственная причина, по которой javascript существует, так выглядит так, как я хочу в ie6, кроме того, что я могу сделать это почти все в css. Цените вход так или иначе – moonblade

+0

Вы пробовали переполнение: авто? – Raze

ответ

2

Я думаю, что ваше мышление изменилось сейчас, когда я подумал об этом больше.

IE7 и ниже всегда показывали полосу прокрутки (отключив ее, если она не нужна). Поэтому, когда требуется прокрутка, пользовательский интерфейс не нуждается в изменении, чтобы включить/отключить прокрутку.

С IE8 это больше не так. Когда требуется прокрутка, страница перескакивает, чтобы разместить новое необходимое пространство для полосы прокрутки. То же самое верно для любого браузера, который по умолчанию не показывает полосу прокрутки.

Если вы установили overflow:scroll на тело, вы сделаете все браузеры полосой прокрутки по умолчанию, и это должно предотвратить прыжки.

+0

как я уже упоминал, у меня это есть set to overflow: прокрутка уже. Дело в том, что я не хочу, чтобы горизонтальная полоса прокрутки была там, а не вертикальная, если это не было необходимо. т.е. 8 покидал промежуток, но не показывал полосу прокрутки. это нормально, хотя я решил переполнить: прокрутка сейчас. +1 за помощь :) – moonblade

0

Вы всегда можете добавить overflow-x: hidden, чтобы заблокировать горизонтальную полосу прокрутки. В сочетании с overflow: scroll он будет делать то, что вы хотите, с горизонтальной полосой прокрутки.

Вертикальная полоса прокрутки останется видимой, но она будет отключена.

Смежные вопросы