2010-03-09 5 views
1

У меня есть набор div для переполнения: auto, max-width 250px.Полоса прокрутки исчезает в IE7

Внутри div У меня есть пейджинговый контроль, который позволяет пользователям отбирать 10, 20, 50 или 100 результатов. Если они вернут достаточные результаты, внутренний контент (таблица) будет больше, чем div, и тогда он будет прокручиваться.

Это прекрасно работает в Firefox 3.5 и IE8, однако в IE7 полоса прокрутки отображается только после первой обратной передачи, для которой требуется полоса прокрутки (например, пользователь выбирает 20). Если пользователь затем выбирает другую сумму, для которой требуется полоса прокрутки (50, 100), панель в IE7 исчезнет.

Если пользователь вернется к 10 результатам (не требуется прокрутка), затем переходит к 20 результатам (требуется прокрутка), полоса прокрутки снова появится в IE7.

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

Кто-нибудь знает, в чем проблема? Я в тупик ... могу предоставить подробную информацию, если это необходимо.

Уточнение: полоса прокрутки исчезает, даже когда содержимое переполняет Div.

ответ

0

Изменить свойство CSS overflow от auto к scroll

См http://www.w3.org/TR/CSS2/visufx.html#propdef-overflow

+0

Да, это последнее средство решения. Проблема заключается в том, что пользователи будут видеть уродливую серо-полосу прокрутки, даже если внутренний контент не нужно прокручивать. – David

+0

Итак ... что вы хотите видеть? Вы можете просто подделать его и нанести внутренний контент так, чтобы он всегда прокручивался – Dancrumb

+0

Когда есть 10 результатов (с 1 строкой), он не должен отображать полосу прокрутки (так как она подходит в Div). Любое более 10 результатов, или 10 результатов, длина которых превышает 1 строку, должна быть прокручиваемой. Думаю, я мог бы сделать Div меньше 10 записей, чтобы он всегда прокручивался. Но, похоже, странно формировать дизайн вокруг того, что кажется ошибкой в ​​IE7. :( – David

0

У меня был подобный вопрос и удалось решить. Теперь, поймите, у меня была ширина таблицы, установленной на 100%. Я считаю, что проблема связана с доктриной. Я попытался установить doctype на

<!DOCTYPE html> <!-- HTML5 --> 

и у меня все еще была та же проблема. Только после удаления объявления doctype ошибка IE7 исчезла (режим quirks, который я бы не рекомендовал). Я также протестировал его с помощью объявлений doctype XHTML 1.0/1.1/HTML 4.01 (Strict, Transitional, Frameset) и возникла одна и та же проблема. Похоже, эта проблема возникает, потому что использование объявления doctype говорит браузеру использовать стандартный режим. IE7 и менее не очень хорошо обрабатывают режим стандартного режима.

Чтобы решить эту проблему для IE7, я установил ширину 99%.

Здесь работает пример кода:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
<style type="text/css"> 
    #Content 
    { 
    overflow-y: auto; 
    overflow-x: hidden; 
    height: 100px; 
    width: 100px; 
    } 
</style> 
</head> 
<body> 
    <div id="Content"> 
    <table width="99%" border="1"> 
     <tbody> 
     <tr><td>1</td></tr> 
     <tr><td>2</td></tr> 
     <tr><td>3</td></tr> 
     <tr><td>4</td></tr> 
     <tr><td>5</td></tr> 
     <tr><td>6</td></tr> 
     <tr><td>7</td></tr> 
     <tr><td>8</td></tr> 
     <tr><td>9</td></tr> 
     </tbody> 
    </table> 
    </div> 
</body> 
</html> 
Смежные вопросы