vertical quitar horizontal hacer div desplazamiento como bootstrap barra html css scrollbar html-lists

html - quitar - scroll horizontal css



Barra de desplazamiento horizontal para ul (5)

Por alguna razón, no puedo evitar que el UL y sus LI se envuelvan. Quiero que el ancho del UL sea exactamente el ancho del LI en una línea (sin ajuste) y si el UL se vuelve más ancho que el nav-div (800px), quiero una barra de desplazamiento dentro del navegador para que pueda desplazar el LI.

Intenté casi cualquier cosa con pantalla, espacios en blanco, ancho y alto, pero solo puedo hacer que funcione si le doy a la UL un cierto ancho. Esto, sin embargo, no es una opción, ya que la página se genera y puede contener 1-20 LI.

¿Alguien sabe cómo hacer que aparezca una barra de desplazamiento sin configurar el ancho del UL?

HTML:

<div id="nav"> <ul id="navbuttons"> <li>Some text</li> <li>Some text</li> ... </ul> </div>

CSS:

div#nav { height: 100px; width: 800px; margin-left: auto; margin-right: auto; } div#nav ul li { margin-right: 15px; float: left; font-size: 12px; list-style-type: none; }


Advertencia: no probado

¿No solo desea establecer un ancho para el elemento li?

div#nav ul li { margin-right: 15px; float: left; font-size: 12px; list-style-type: none; width: 100px; }

¿Y luego establecer el ancho a un ancho fijo y el desbordamiento en el UL para desplazarse?

div#nav ul { width: 800px; overflow: scroll; }

Esto causaría que UL se desplace cuando sus li pasaron, digamos 8, ¿es eso lo que está buscando?


Agregue la siguiente regla:

div#nav ul { overflow-x: hidden; overflow-y: scroll; white-space: nowrap; }


Al establecer el width en <ul> para inherit , puede usar la propiedad de overflow para establecer el comportamiento de desbordamiento del elemento. Con el scroll valores, todos los contenidos del elemento se desplazarán (en las direcciones x e y) si la altura y el ancho de los contenidos se desbordan a los de la caja:

div#nav ul { overflow: scroll; width: inherit; height: inherit; }


Puedes usar display: inline-block; white-space: nowrap; display: inline-block; white-space: nowrap; para el envoltorio y la display: inline o display: inline-block en display: inline-block para los niños.

Entonces, se vería así: http://jsfiddle.net/kizu/98cFj/

Y, si necesita admitir IE, agregue este truco en comentarios condicionales para habilitar inline-block en inline-block en él:

.navbuttons, .navbuttons LI { display: inline; zoom: 1; }


prueba esto

ul { white-space:nowrap; } li { display:inline; }