Lorsque je définis overflow:scroll
, les barres de défilement horizontales et verticales sont affichées.
Est-il possible de supprimer la barre de défilement horizontale dans un div?
overflow-x: hidden;
N'oubliez pas d'écrire overflow-x:hidden;
le code devrait être
overflow-y: scroll; overflow-x:hidden;
Avec overflow-y:scroll
, la barre de défilement verticale sera toujours là même si elle n’est pas nécessaire. Si vous voulez que la barre de défilement y soit visible uniquement lorsque cela est nécessaire, je trouve que cela fonctionne:
.mydivclass {overflow-x: hidden; overflow-y: auto;}
overflow-y: scroll;
Si vous supprimez le -y
de la propriété overflow-y
, la barre de défilement horizontale s’affiche.
Ajoutez ce code à votre CSS. Cela désactivera la barre de défilement horizontale.
html, body {
max-width: 100%;
overflow-x: hidden;
}
Pas de défilement: // sans spécifier x ou y
.your-class {
overflow: hidden;
}
Supprimer le défilement horizontal:
.your-class {
overflow-x: hidden;
}
Supprimer le défilement vertical:
.your-class {
overflow-y: hidden;
}
Si vous n’avez rien qui déborde horizontalement, vous pouvez aussi utiliser
overflow:auto;
et il ne montrera que des barres de défilement en cas de besoin.
overflow: auto;
Cela montrera la barre de défilement verticale et seulement si il y a un débordement vertical, sinon, il sera caché.
Si vous avez à la fois un dépassement x et y, les barres de défilement x et y seront affichées.
Pour masquer la barre de défilement x (horizontale), même si elle est présente, ajoutez simplement:
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>
Pour masquer la barre de défilement horizontale, il suffit de sélectionner la barre de défilement de la div souhaitée et de la définir sur display: none;
Une chose à noter est que cela ne fonctionnera que pour les navigateurs Webkit (comme Chrome), car aucune option de ce type n'est disponible pour Mozilla.
Afin de sélectionner la barre de défilement, utilisez ::-webkit-scrollbar
Donc, le code final sera comme ça:
div::-webkit-scrollbar{
display: none;
}
Pour supprimer la barre de défilement horizontale, utilisez ce code. ça marche à 100%
html, body {overflow-x: hidden;}