Simple Materialise UI 响应式侧边菜单

Simple Materialize UI Responsive Side Menu

我在上下搜索了与此等效的 Materialize UI(重量较轻的示例 MUI CSS):-

https://www.muicss.com/docs/v1/example-layouts/responsive-side-menu

例如在桌面上看起来像这样(能够通过汉堡图标显示/隐藏菜单):-

但在手机上会是这样的:-

我坚持不懈,并使用文档 (http://materializecss.com/side-nav.html) 想出了一些办法。

如果有人感兴趣,我已在下面附上 HTML、CSS + JavaScript。

注意: 在我的回答中,以桌面大小查看时没有汉堡,即无法隐藏菜单。我发现,如果我删除了以下 <a> 上的 hide-on-large-only 属性,那么它会在现有菜单的顶部放置一个菜单。

<a href="#" data-activates="slide-out" class="button-collapse hide-on-large-only"><i class="material-icons">menu</i></a>

此外,当点击菜单外时,它完全消失了! :-)

理想情况下,将汉堡放在桌面大小会很好,这样菜单可以在必要时隐藏,但对这个解决方案已经足够满意了。

$('.button-collapse').sideNav({
  menuWidth: 300, // Default is 300
  edge: 'left', // Choose the horizontal origin
  closeOnClick: false, // Closes side-nav on <a> clicks, useful for Angular/Meteor
  draggable: true // Choose whether you can drag to open on touch screens
});
#container {
  padding-left: 300px;
}

#content {
  padding: 20px;
}

@media only screen and (max-width : 992px) {
  #container {
    padding-left: 0px;
  }
}
<!-- JQuery / Materialize CSS + JavaScript imports -->

<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>

<!-- HTML -->

<div id="container">

  <div id="menu">

    <ul id="slide-out" class="side-nav fixed show-on-large-only">
      <li><a href="#!">First Sidebar Link</a></li>
      <li><a href="#!">Second Sidebar Link</a></li>
      <li class="no-padding">
        <ul class="collapsible collapsible-accordion">
          <li>
            <a class="collapsible-header">Dropdown<i class="material-icons">arrow_drop_down</i></a>
            <div class="collapsible-body">
              <ul>
                <li><a href="#!">First</a></li>
                <li><a href="#!">Second</a></li>
                <li><a href="#!">Third</a></li>
                <li><a href="#!">Fourth</a></li>
              </ul>
            </div>
          </li>
        </ul>
      </li>
    </ul>
  </div>

  <div id="content">
    <a href="#" data-activates="slide-out" class="button-collapse hide-on-large-only"><i class="material-icons">menu</i></a>
    
    <h3>Simple Materialize Responsive Side Menu</h3>
    
    <p>Resize browser to see what it looks like in (a) brwoser (b) mobile devices</p>

  </div>
    
</div>