Горизонтальная полоса прокрутки появляется только в IE7, даже если установлено значение overflow:hidden

Я ломаю голову над этим.

Меня беспокоит горизонтальная полоса прокрутки, которая появляется только при просмотре моего сайта в IE7:
http://www.regia.it< /а>

Я пытался и пытался предотвратить это, используя overflow:hidden на моих div, но по какой-то причине я просто не могу найти причину проблемы.

Любая помощь приветствуется.


person Milksamsa    schedule 15.09.2011    source источник
comment
Протестировано с IE8 в режиме совместимости, здесь нет полосы прокрутки. Единственное, что я увидел неправильно, так это меню, которое было вертикальным, а не горизонтальным. Можете выложить снимок экрана?   -  person Ortiga    schedule 15.09.2011
comment
Взгляните на этот вопрос SO: stackoverflow.com/questions/2941172/   -  person Todd Moses    schedule 15.09.2011
comment
Я безуспешно пытался использовать свойство overflow-x: hidden в теге body.   -  person Milksamsa    schedule 15.09.2011


Ответы (2)


Это кажется странным. Я предполагаю, что вы не возражаете, если страница не прокручивается по горизонтали даже на маленьких экранах, поскольку вы пытались использовать:

body{overflow-x: hidden;}

В этом случае, если вы примените его к html, а не к body, это должно сработать:

html{overflow-x: hidden;}

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

<!--[if IE 7]>
    Link to alternate style sheet
    OR
    <style> /*CSS in here*/ </style>
<![endif]-->

РЕДАКТИРОВАНИЕ: я нашел причину проблемы, поэтому нет необходимости использовать описанный выше обходной путь. Как я и подозревал, проблема была связана с абсолютным и относительным позиционированием.

Вам просто нужно удалить position:relative из .grid_2 и .grid_12 и полоса прокрутки исчезнет.

person tw16    schedule 15.09.2011
comment
Спасибо. Именно это я и сделал всего за пару минут до вашего ответа и исправил ошибку. Как вы сказали, я надеялся на лучшее решение, но это сойдет! Спасибо. - person Milksamsa; 15.09.2011
comment
@milksamsa: Рад, что смог помочь, и рад, что вам не пришлось использовать обходной путь с ограниченным удобством использования. - person tw16; 16.09.2011
comment
+1 за редактирование о position:relative - это было для меня новостью и избавило меня от некоторых проблем. Я действительно думаю, что это окончательное решение - скрытие переполнения позволяет его убрать, даже когда это может быть необходимо! - person tmsimont; 04.10.2012

Я тоже столкнулся с этой неприятной проблемой. У меня была таблица в div, и они были внутри внешнего div. Когда я удалил стиль, чтобы сделать внутреннюю ширину div: 100%, моя полоса прокрутки «только для IE7» исчезла.

Надеюсь, это немного полезно.

person Michael    schedule 08.01.2014