¿Cómo elimino la barra de desplazamiento horizontal en un div?

128

Cuando configuro overflow: scroll, obtengo barras de desplazamiento horizontales y verticales.

¿Hay alguna manera de eliminar la barra de desplazamiento horizontal en un div?

Ravi
fuente

Respuestas:

208
overflow-x: hidden;

basarat
fuente
Gracias, ahorraste mucho tiempo. ¿Alguien puede marcar esto como una respuesta aceptada por favor?
Nagarajan SR
55
Es una mala solución. Porque en este caso solo ocultas el desplazamiento horizontal en el contenedor. Pero si este contenedor es demasiado ancho, su contenido no cabe en su contenedor.
Alex Filatov
38

No olvides escribir overflow-x: hidden;

El código debe ser:

overflow-y: scroll;
overflow-x: hidden;
Ajit Bhandari
fuente
21

Con overflow-y: scroll, la barra de desplazamiento vertical siempre estará allí, incluso si no es necesaria. Si desea que la barra de desplazamiento y sea visible solo cuando sea necesario, encontré que esto funciona:

.mydivclass {overflow-x: hidden; overflow-y: auto;}
Bajá
fuente
19

CSS

overflow-y: scroll;

Véalo en jsFiddle .

Tenga en cuenta que si elimina el -yde la overflow-ypropiedad, se muestra la barra de desplazamiento horizontal.

alex
fuente
13

Agregue este código a su CSS. Deshabilitará la barra de desplazamiento horizontal.

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

Sin desplazamiento (sin especificar x o y):

.your-class {
   overflow: hidden;
}

Eliminar desplazamiento horizontal:

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

Eliminar desplazamiento vertical:

.your-class {
   overflow-y: hidden;
}
Mise
fuente
OP necesita desplazarse sin barra de desplazamiento
T04435
8

Para ocultar la barra de desplazamiento horizontal, solo podemos seleccionar la barra de desplazamiento del div requerido y configurarlo en display: none;

Una cosa a tener en cuenta es que esto solo funcionará para los navegadores basados ​​en WebKit (como Chrome) ya que no hay tal opción disponible para Mozilla.

Para seleccionar la barra de desplazamiento, use ::-webkit-scrollbar

Entonces el código final será así:

div::-webkit-scrollbar {
  display: none;
}
Shubham Jain
fuente
8

Para eliminar la barra de desplazamiento horizontal, use el siguiente código. Funciona al 100%.

html, body {
    overflow-x: hidden;
}
Harshit Bansal
fuente
5

Si no tiene nada que se desborde horizontalmente, también puede usar

overflow: auto;

y solo mostrará barras de desplazamiento cuando sea necesario.

Ver la propiedad de desbordamiento de CSS

rspilhaus
fuente
2

Utilizar:

overflow: auto;

Esto mostrará la barra de desplazamiento vertical y solo si hay un desbordamiento vertical, de lo contrario, estará oculto.

Si tiene un desbordamiento x e y, se mostrarán las barras de desplazamiento x e y.

Para ocultar la barra de desplazamiento x (horizontal), incluso si está presente, simplemente agregue:

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>

aero
fuente
0

Use este fragmento de código ...

.card::-webkit-scrollbar {
  display: none;
}
kamalesh biswas
fuente
-3

Había estado teniendo problemas donde estaba usando

overflow: none;

Pero sabía que a CSS realmente no le gustaba y no funcionaba al 100% como yo quería.

Sin embargo, esta es una solución perfecta ya que se supone que ninguno de mi contenido es más grande de lo previsto y esto ha solucionado el problema que tenía.

overflow: auto;
Ash Darko
fuente