2010-03-15 5 views
1

Что я хочу:Как сделать усадочную полосу прокрутки?

<div style="overflow:scroll;width:100%;height:50%;"> &nbsp; 
    <div style="height:500px;width:400px;border:solid 3px red;"> 
     </div> 
     </div> 

<div style="overflow:scroll;width:100%;HEIGHT:50%;"> &nbsp; 
    <div style="height:500px;width:400px;border:solid 3px red;"> 
     </div> 
     </div> 

Обратите внимание, как если бы я сжиматься высоту окна полосы прокрутки усадку. Это функциональность, которую я хочу.

Вопрос:
Я хочу сделать что-то подобное выше, только с фиксированной высотой 100 пикселей для верхних дел.

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

Как это сделать?

ответ

0

Я нашел ответ. Мне нужно использовать выражения css

 <div style="overflow:scroll;width:100%;height:100px"> &nbsp; 
    <div style="height:500px;width:400px;border:solid 3px red;"> 
     </div> 
     </div> 

<div style="overflow:scroll;width:100%;height:expression((document.body.clientHeight - 120) + 'px');"> &nbsp; 
    <div style="height:500px;width:400px;border:solid 3px red;"> 
     </div> 
     </div> 
0

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

Это единственный способ, которым я могу это сделать. Он позиционирует элементы абсолютно.

<div style="position: absolute; 
       left: 0px; top: 0px; height: 100px; 
       overflow:scroll;right: 0px;"> 
    &nbsp; 
    <div style="height:500px;width:400px;border:solid 3px red;"> 
     </div> 
     </div> 

<div style="position: absolute; 
      left: 0px; top: 100px; 
      bottom: 0px; right: 0px; 
      overflow:scroll;"> 
    &nbsp; 
    <div style="height:500px;width:400px;border:solid 3px red;"> 
     </div> 
     </div> 
+0

Это создает дополнительную внешнюю полосу прокрутки. В моем первом примере полосы прокрутки расширяются и сжимаются по мере уменьшения окна. Это делается потому, что они являются процентами и не фиксированными ширинами. Что я хочу сделать, это сохранить поведение, когда высота окна сжимается, но максимальная высота для верхнего div при увеличении высоты окна. В вашем примере, если высота окна слишком сильно сжимается, появляется новая третья полоса прокрутки. Пользователи жаловались, что у них есть несколько вертикальных полос прокрутки, с которыми можно бороться, и именно этого я и стараюсь избегать. – diadem

+0

@diadem Я вижу. Я не уверен, что это возможно. Вы можете попробовать использовать ширину и высоту таблицы шириной 100% и высоту, две строки и ячейку в каждой, причем верхняя ячейка имеет атрибут max-height: 100px. –

+0

@diadem Вы всегда можете избавиться от дополнительной полосы прокрутки, используя 'overflow: hidden' на' body' btw, если это возможно в вашем случае (часто это не так). –

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