Як видалити горизонтальну смугу прокрутки в діві?


128

Коли я встановлюю overflow: scroll, я отримую горизонтальну та вертикальну смуги прокрутки.

Чи є спосіб видалити горизонтальну смугу прокрутки в діві?

Відповіді:


208
overflow-x: hidden;


Спасибі ви заощадили багато часу. Чи може хтось відзначити це як прийняту відповідь PLZ.
Nagarajan SR

5
це погане рішення. Тому що в цьому випадку ви просто ховаєте горизонтальну прокрутку в контейнер. Але якщо цей контейнер занадто широкий, ваш вміст не вміститься у вашому контейнері.
Олексій Філатов


21

З overflow-y: scroll, вертикальна смуга прокрутки завжди буде там, навіть якщо вона не потрібна. Якщо ви хочете, щоб панель прокрутки бачилася лише тоді, коли вона потрібна, я знайшов це:

.mydivclass {overflow-x: hidden; overflow-y: auto;}


13

Додайте цей код у свій CSS. Це відключить горизонтальну смугу прокрутки.

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

10

Без прокрутки (не вказуючи x чи y):

.your-class {
   overflow: hidden;
}

Видалити горизонтальну прокрутку:

.your-class {
   overflow-x: hidden;
}

Видалити вертикальну прокрутку:

.your-class {
   overflow-y: hidden;
}

ОП потребує прокрутки без прокрутки
T04435

8

Щоб приховати горизонтальну смугу прокрутки, ми можемо просто вибрати смугу прокрутки потрібного діва та встановити його display: none;

Варто зазначити, що це працюватиме лише для браузерів на базі WebKit (наприклад, Chrome), оскільки для Mozilla немає такої опції.

Щоб вибрати панель прокрутки, скористайтесь ::-webkit-scrollbar

Отже, остаточний код буде таким:

div::-webkit-scrollbar {
  display: none;
}

8

Щоб видалити горизонтальну смугу прокрутки, використовуйте наступний код. Це 100% працює.

html, body {
    overflow-x: hidden;
}


2

Використання:

overflow: auto;

Це покаже вертикальну смугу прокрутки і лише за наявності вертикального переливу, інакше вона буде прихована.

Якщо у вас є переповнення x і y, то будуть показані обидва панелі прокрутки x і y.

Щоб приховати панель прокрутки x (горизонтальну), навіть якщо вона проста, додайте:

overflow-x: hidden;

body {
    font-family: sans-serif;
}

.nowrap {
    white-space: nowrap;
}

.container {
    height: 200px;
    width: 300px;
    padding 10px;
    border: 1px solid #444;

    overflow: auto;
    overflow-x: hidden;
}
<div class="container">
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item 7</li>
  <li class="nowrap">Item 8 and some really long text to make it overflow horizontally.</li>
  <li>Item 9</li>
  <li>Item 10</li>
  <li>Item 11</li>
  <li>Item 12</li>
  <li>Item 13</li>
  <li>Item 14</li>
  <li>Item 15</li>
  <li>Item 16</li>
  <li>Item 17</li>
</ul>
</div>




-3

У мене виникли проблеми, де я використовувався

overflow: none;

Але я знав, що CSS це не дуже любить, і він не працював на 100% для того, як я цього хотів.

Однак це ідеальне рішення, оскільки жоден мій вміст не повинен бути більшим, ніж задумано, і це вирішило проблему, яку я мав.

overflow: auto;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.