Как сделать так, чтобы полоса прокрутки на div отображалась только при необходимости?


151

У меня есть этот div:

<div style='overflow:scroll; width:400px;height:400px;'>here is some text</div>

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


Как насчет этого. Показывает только полосу прокрутки при наведении. Не уверен, если это полезно для вас. stackoverflow.com/questions/7125185/…
Райан Болье

codepen.io/anon/pen/QwLeMG Надеюсь, что это поможет вам
vishalkin

overflow: auto;не работает на Android :-(
aioobe

Ответы:


313

Использование overflow: auto. Полосы прокрутки появятся только при необходимости.

(Sidenote, вы также можете указать только для полосы прокрутки x или y: overflow-x: autoи overflow-y: auto).


5
Обратите внимание, что overflow-y работает, только если вы укажетеmax-height
Black

1
переполнение-у не нужно максимальная высота. Я никогда не использовал max-height с overflow-y, и он работал каждый раз.
Сумафу

1
@Sumafu вам может понадобиться в зависимости от случая, как я мог испытать прямо сейчас.
Дэвид

1
Вам нужно heightили max-heightустановить, если вы используете absoluteили fixedразмещаете на элементе переполнения, так как это предотвращает изменение размера элемента на основе границ страницы или области просмотра.
Скотт

15

попробуй это:

<div style='overflow:auto; width:400px;height:400px;'>here is some text</div>

7

пытаться

<div style='overflow:auto; width:400px;height:400px;'>here is some text</div>

6

пытаться

<div id="boxscroll2" style="overflow: auto; position: relative;" tabindex="5001">

0

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

<div style=" overflow:auto;max-height:300px; max-width:300px;"></div>

0

Вы можете попробовать ниже:

  <div style="width: 100%; height: 100%; overflow-x: visible; overflow-y: scroll;">Text</div>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.