Wypróbowałem tę metodę ( ich skrzypce ), aby włączyć przewijalne menu za pomocą Bootstrapa, ale przy takim podejściu przewijalne menu rozszerza swój kontener - skrzypce - menu nieprzewijalne, poprawnie, nie robi tego.
Jak mogę to naprawić? Sugestie dotyczące innych podejść zgodnych z Bootstrap również są mile widziane!
Dla porównania, oto kod HTML ze skrzypiec pierwszej metody:
<ul class="nav">
<li class="dropdown">
<a class="icon-key icon-white" data-toggle="dropdown" href="#" style=
"font-weight: bold"></a>
<div class="dropdown-menu" style="margin-left: 2em">
<ul class="dropdown-menu">
<!-- static non-scrollable menu header 1 -->
</ul>
</div>
<div class="dropdown-menu" style="margin-left: 2em">
<ul class="dropdown-menu">
<li class="disabled">
<a href="#"><i class="icon-group"></i> <b>My Groups</b></a>
</li>
<li>
<div class="dropdown-menu scroll-menu scroll-menu-2x"
style="margin-left: 2em">
<ul class="dropdown-menu scroll-menu scroll-menu-2x">
<li>
<a href="#">User</a>
</li>
<li>
<a href="#">Administrators</a>
</li>
<li>
<a href="#">Some Other Group</a>
</li>
</ul>
</div>
<ul class="dropdown-menu scroll-menu scroll-menu-2x">
<!-- Additional menu items omitted for brevity -->
</ul>
</li>
</ul>
</div>
<div class="dropdown-menu" style="margin-left: 2em">
<ul class="dropdown-menu">
<!-- static non-scrollable menu header 2 -->
</ul>
</div>
<div class="dropdown-menu" style="margin-left: 2em">
<ul class="dropdown-menu">
<li class="disabled">
<a href="#"><i class="icon-user"></i> <b>My Roles</b></a>
</li>
<li>
<div class="dropdown-menu scroll-menu scroll-menu-2x"
style="margin-left: 2em">
<ul class="dropdown-menu scroll-menu scroll-menu-2x">
<li>
<a href="#">Core Users</a>
</li>
<li>
<a href="#">Admin</a>
</li>
<li>
<a href="#">Some Other Role</a>
</li>
</ul>
</div>
<ul class="dropdown-menu scroll-menu scroll-menu-2x">
<!-- Additional menu items omitted for brevity -->
</ul>
</li>
</ul>
</div>
<div class="dropdown-menu" style="margin-left: 2em">
<ul class="dropdown-menu">
<!-- static non-scrollable menu footer -->
</ul>
</div>
<ul class="dropdown-menu">
<li class="disabled">
<a href="#"><i class="icon-chevron-up pull-left"></i> <i class="icon-chevron-up pull-right"></i></a>
</li>
</ul>
</li>
</ul>
Oraz CSS:
/* So we wont impact the original bootstrap menu or it's pseudo call-out
arrow the menu is wrapped in a sub dropdown-menu with a chained scroll-menu */
ul.scroll-menu {
position:relative;
display:inherit!important;
overflow-x:auto;
-webkit-overflow-scrolling:touch;
-moz-overflow-scrolling:touch;
-ms-overflow-scrolling:touch;
-o-overflow-scrolling:touch;
overflow-scrolling:touch;
top:0!important;
left:0!important;
width:100%;
height:auto;
max-height:500px;
margin:0;
border-left:none;
border-right:none;
-webkit-border-radius:0!important;
-moz-border-radius:0!important;
-ms-border-radius:0!important;
-o-border-radius:0!important;
border-radius:0!important;
-webkit-box-shadow:none;
-moz-box-shadow:none;
-ms-box-shadow:none;
-o-box-shadow:none;
box-shadow:none
}
css
twitter-bootstrap
scrollable
eliashdezr
źródło
źródło
Odpowiedzi:
Myślę, że możesz to uprościć, po prostu dodając niezbędne właściwości CSS do swojej specjalnej klasy przewijanego menu.
CSS:
HTML
Przykład roboczy: https://www.bootply.com/86116
Bootstrap 4
Kolejny przykład dla Bootstrap 4 wykorzystujący flexbox
źródło
Możesz użyć wbudowanej wstępnie przewijanej klasy CSS w programie bootstrap 3 w elemencie span listy rozwijanej i działa ona natychmiast, bez implementowania niestandardowego css.
źródło
W przypadku CSS stwierdziłem, że maksymalna wysokość 180 jest lepsza dla telefonów komórkowych w orientacji poziomej 320 podczas wyświetlania chrome przeglądarki.
Ponadto, aby dodać widoczne paski przewijania, ten CSS powinien załatwić sprawę:
Zmiany są odzwierciedlone tutaj: https://www.bootply.com/BhkCKFEELL
źródło
Rób wszystko w tagu UL w linii
źródło
Po prostu naprawiam ten problem w moim projekcie-
Kod CSS
Kod HTML
źródło
mam nadzieję, że ten kod działa dobrze, spróbuj tego.
dodaj plik css.
Kod HTML:
źródło