【发布时间】:2019-03-31 05:16:19
【问题描述】:
我正在尝试用两行制作导航栏:第一行用于二级菜单,第二行用于主菜单。我对 Bulma 还很陌生,寻找解决方案并不像 Bootstrap 那样容易。
到目前为止,这是我的小提琴(HTML 结构)。
https://jsfiddle.net/wck1hj9r/4/
<div class="navbar nav-secondary" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="https://bulma.io">
Part of Larger Holding
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
</div>
<div class="navbar-end">
<a class="navbar-item">
Menu 1
</a>
<a class="navbar-item">
Menu 2
</a>
<div class="navbar-item field">
<p class="control has-icons-right">
<input class="input" type="search" placeholder="Search...">
<span class="icon is-small is-right">
</span>
</p>
</div>
</div>
</div>
</div> <!-- nav -->
<nav class="navbar nav-primary" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="https://bulma.io">
<img src="https://bulma.io/images/bulma-logo.png" width="112" height="28">
</a>
<a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
</div>
<div class="navbar-end">
<a class="navbar-item">
About
</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
Team
</a>
<div class="navbar-dropdown">
<a class="navbar-item">
Management
</a>
<a class="navbar-item">
Experts
</a>
<hr class="navbar-divider">
<a class="navbar-item">
Apply!
</a>
</div>
</div>
<a class="navbar-item">
Articles
</a>
</div>
</div>
</nav>
可以看出,到目前为止,我的解决方案是制作两个 Bulma 导航栏。
然后我想让移动布局看起来像这样。搜索输入被隐藏,搜索图标出现在第二行。第二行中的链接被隐藏,而是出现一个汉堡菜单。同时,第一行的链接仍然可见。
我的问题可能有两个方面:
- 我不确定这个 HTML 结构,因为它似乎是多余的?我将如何最好地构建它?
- 根据结构,我应该怎么做才能让移动布局像我解释的那样?
有什么指导方针吗?
【问题讨论】:
-
用户触摸搜索图标后,搜索框在移动视图中如何显示?您是否必须在顶部导航栏中使用相同的搜索框,或者是否可以有两个文本框?
-
可能有两个输入,但我仍然想知道它是否在语义上很好(虽然我猜可以很容易地用 JS 移动?)。
-
是的,它可以移动,但不是很好的做法,移动后可能会失去一些功能
-
嗯。那么如何使用两个输入来完成呢?