Bulma 导航栏有两行

Bulma navbar with two rows

在 bulma.io 中重现此内容的最佳方法是什么?包括responsivness, hamburger等

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<nav class="navbar navbar-fixed-top">

    <div class="container">

        <div class="row navbar-first-row">

            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                    data-target="#navbar-main-collapse">
                <span class="glyphicon glyphicon-menu-hamburger"></span>
                <span class="sr-only">Toggle navigation</span>
            </button>

            <div class="navbar-right navbar-text hidden-xs">
                Logo
            </div>

            <h1 class="h4 navbar-text">Really long application title</h1>

        </div>

        <div class="row navbar-second-row">

            <div class="navbar-right navbar-text hidden-xs">Logged User</div>

            <div class="collapse navbar-collapse" id="navbar-main-collapse">
                <ul class="nav navbar-nav">
                    <li class="active"><a href="#">Item 1</a></li>
                    <li><a href="#">Item 2</a></li>
                    <li><a href="#">Item 2</a></li>
                    <li><a href="#">Item 2</a></li>
                    <li><a href="#">Item 3</a></li>
                </ul>
            </div>

        </div>

    </div>

</nav>

--- tl;dr ---

我最近搬到 Vue.js 前端,这涉及到我的工作流程的巨大变化。我也在考虑尝试从 Bootstrap3 切换到更清洁的东西并尝试了 Bulma。直到我想做一些与众不同的事情之前,这真是令人愉快的经历。在我的例子中,它是两行导航栏。经过一个小时的尝试,我迅速切换回 Bs3。

使用 bootstrap 的主要优势在于,成千上万想要实现各种疯狂的怪人已经提出了数十个愚蠢的问题。他们中的大多数都得到了患者社区的回答,现在可供 public 使用。不幸的是,布尔玛还没有这个。

我觉得现在至少有 70% 的程序员意味着 google-around Whosebug。快速研究主题的能力是必不可少的。我没有时间为自己探索一切,我要养家糊口,而我的客户根本不在乎我使用哪种框架。但至少我决定问。可能有人将来会面临类似的挑战。干杯。

可能有很多方法可以做到这一点。这是一种方法:

按照 documentation 中所述创建菜单 那么...

HTML

  1. 添加 'Application Title' 作为 navbar-brand 的 first-child。
  2. is-hidden-touch 修饰符添加到包含徽标的 navbar-item。这将在移动设备和平板设备上隐藏它。
  3. 'logged in user'内容可以添加到navbar-end

CSS

  1. 我们需要navbar-brand来占据自己的'row'。为此,请将其宽度更新为 100%。
  2. 然后,将justify-content属性到navbar-brand到space的内容均匀地加入
  3. 要确保 navbar-menu 移动到新的 'row',您必须将 flex-wrap 属性 添加到 navbar

fiddle

.navbar-brand {
  width: 100%;
}

.navbar {
  flex-wrap: wrap;
}

.navbar-brand {
  justify-content: space-between;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.6.1/css/bulma.min.css" rel="stylesheet"/>
<nav class="navbar" role="navigation" aria-label="main navigation">
  <div class="navbar-brand">
    <a class="navbar-item">Really Long Application Title</a>
    <a class="navbar-item is-hidden-touch">
      <img src="https://bulma.io/images/bulma-logo.png" alt="Bulma" width="112" height="28">
    </a>
    <button class="button navbar-burger" data-target="navMenu">
      <span></span>
      <span></span>
      <span></span>
    </button>
  </div>
  <div class="navbar-menu" id="navMenu">
    <div class="navbar-start">
      <a class="navbar-item">Item 1</a>
      <a class="navbar-item">Item 2</a>
      <a class="navbar-item">Item 3</a>
      <a class="navbar-item">Item 4</a>
      <a class="navbar-item">Item 5</a>
    </div>
    <div class="navbar-end">
      <a class="navbar-item">Logged in</a>
    </div>
  </div>
</nav>