导航栏
组件 <b-navbar> 是一个包装器,将品牌、导航和其他元素定位到一个简洁的标题中。它很容易扩展,并且由于 <b-collapse> 组件,它可以轻松地集成响应行为。
示例
<div>
<b-navbar toggleable="lg" type="dark" variant="info">
<b-navbar-brand href="#">NavBar</b-navbar-brand>
<b-navbar-toggle target="nav-collapse"></b-navbar-toggle>
<b-collapse id="nav-collapse" is-nav>
<b-navbar-nav>
<b-nav-item href="#">Link</b-nav-item>
<b-nav-item href="#" disabled>Disabled</b-nav-item>
</b-navbar-nav>
<b-navbar-nav class="ml-auto">
<b-nav-form>
<b-form-input size="sm" class="mr-sm-2" placeholder="Search"></b-form-input>
<b-button size="sm" class="my-2 my-sm-0" type="submit">Search</b-button>
</b-nav-form>
<b-nav-item-dropdown text="Lang" right>
<b-dropdown-item href="#">EN</b-dropdown-item>
<b-dropdown-item href="#">ES</b-dropdown-item>
<b-dropdown-item href="#">RU</b-dropdown-item>
<b-dropdown-item href="#">FA</b-dropdown-item>
</b-nav-item-dropdown>
<b-nav-item-dropdown right>
<template #button-content>
<em>User</em>
</template>
<b-dropdown-item href="#">Profile</b-dropdown-item>
<b-dropdown-item href="#">Sign Out</b-dropdown-item>
</b-nav-item-dropdown>
</b-navbar-nav>
</b-collapse>
</b-navbar>
</div>
配色方案
<b-navbar> 支持标准 Bootstrap v4 可用的背景颜色变体。将 variant 属性设置为以下值之一以更改背景颜色:primary、success、info、warning、danger、dark 或 light。
通过将 type 属性设置为 light 以用于浅色背景颜色变体,或 dark 以用于深色背景颜色变体,来控制文本颜色。
放置
通过设置两个属性中的一个来控制导航栏的放置
| 属性 | 类型 | 默认值 | 描述 |
fixed | 字符串 | null | 设置为 top 以固定到视口的顶部,或设置为 bottom 以固定到视口的 bottom。 |
sticky | 布尔值 | false | 设置为 true 以使导航栏粘贴到视口的顶部(或具有 position: relative 设置的父容器)时滚动。 |
备注
- 固定定位使用 CSS
position: fixed。您可能需要调整文档顶部/底部填充或边距。 - CSS
position: sticky(用于 sticky)并非在所有浏览器中都得到完全支持。对于不支持 position: sticky 的浏览器,它将本机回退到 position: relative。
支持的内容
导航栏内置支持少数子组件。根据需要从以下内容中进行选择
<b-navbar-brand> 用于您的公司、产品或项目名称。 <b-navbar-toggle> 用于 <b-collapse is-nav> 组件。 <b-collapse is-nav> 用于按父断点对导航栏内容进行分组和隐藏。 <b-navbar-nav> 用于全高且轻量级的导航(包括对下拉菜单的支持)。以下子组件在 <b-navbar-nav> 中受支持 <b-nav-item> 用于链接(和路由器链接)操作项 <b-nav-item-dropdown> 用于导航下拉菜单 <b-nav-text> 用于添加垂直居中的文本字符串。 <b-nav-form> 用于任何表单控件和操作。
<b-navbar-brand>
如果提供了 href,<b-navbar-brand> 会生成一个链接,如果提供了 to,则会生成一个 <router-link>。如果两者都没有提供,它将呈现为 <div> 标签。您可以通过将 tag 属性设置为您希望呈现的元素来覆盖标签类型
<div>
<b-navbar variant="faded" type="light">
<b-navbar-brand href="#">BootstrapVue</b-navbar-brand>
</b-navbar>
</div>
<div>
<b-navbar variant="faded" type="light">
<b-navbar-brand tag="h1" class="mb-0">BootstrapVue</b-navbar-brand>
</b-navbar>
</div>
将图像添加到 <b-navbar-brand> 可能总是需要自定义样式或实用程序才能正确调整大小。以下是一些演示示例
<div>
<b-navbar variant="faded" type="light">
<b-navbar-brand href="#">
<img src="https://placekitten.com/g/30/30" alt="Kitten">
</b-navbar-brand>
</b-navbar>
</div>
<div>
<b-navbar variant="faded" type="light">
<b-navbar-brand href="#">
<img src="https://placekitten.com/g/30/30" class="d-inline-block align-top" alt="Kitten">
BootstrapVue
</b-navbar-brand>
</b-navbar>
</div>
<b-navbar-nav>
导航栏导航链接建立在 <b-navbar-nav> 父组件的基础上,需要使用 <b-collapse is-nav> 和 <b-nav-toggle> 切换器才能实现正确的响应式样式。导航栏中的导航也会增长到占据尽可能多的水平空间,以确保您的导航栏内容安全对齐。
<b-navbar-nav> 支持以下子组件
<b-nav-item> 用于链接(和路由器链接)操作项 <b-nav-text> 用于添加垂直居中的文本字符串。 <b-nav-item-dropdown> 用于导航栏下拉菜单 <b-nav-form> 用于向导航栏添加简单的表单。
<b-nav-item>
<b-nav-item> 是主要链接(和 <router-link>)组件。提供 to 属性值将生成 <router-link>,而提供 href 属性值将生成标准链接。
设置 <b-nav-item> active 属性将突出显示该项目为活动页面,通过将属性 disabled 设置为 true 来禁用 <b-nav-item>。
通过为 <b-nav-item> 上的 @click 事件指定一个处理程序来处理点击事件。
<b-nav-text>
借助 <b-nav-text>,导航栏可以包含文本片段。此组件调整文本字符串的垂直对齐方式和水平间距。
<div>
<b-navbar toggleable="sm" type="light" variant="light">
<b-navbar-toggle target="nav-text-collapse"></b-navbar-toggle>
<b-navbar-brand>BootstrapVue</b-navbar-brand>
<b-collapse id="nav-text-collapse" is-nav>
<b-navbar-nav>
<b-nav-text>Navbar text</b-nav-text>
</b-navbar-nav>
</b-collapse>
</b-navbar>
</div>
<b-nav-item-dropdown>
有关 <b-nav-item-dropdown> 用法,请参阅 <b-dropdown> 文档。请注意,<b-navbar> 和 <b-navbar-nav> 不支持拆分下拉菜单。
<div>
<b-navbar type="dark" variant="dark">
<b-navbar-nav>
<b-nav-item href="#">Home</b-nav-item>
<b-nav-item-dropdown text="Lang" right>
<b-dropdown-item href="#">EN</b-dropdown-item>
<b-dropdown-item href="#">ES</b-dropdown-item>
<b-dropdown-item href="#">RU</b-dropdown-item>
<b-dropdown-item href="#">FA</b-dropdown-item>
</b-nav-item-dropdown>
<b-nav-item-dropdown text="User" right>
<b-dropdown-item href="#">Account</b-dropdown-item>
<b-dropdown-item href="#">Settings</b-dropdown-item>
</b-nav-item-dropdown>
</b-navbar-nav>
</b-navbar>
</div>
使用 <b-nav-form> 将内联表单控件置于导航栏中
<div>
<b-navbar type="light" variant="light">
<b-nav-form>
<b-form-input class="mr-sm-2" placeholder="Search"></b-form-input>
<b-button variant="outline-success" class="my-2 my-sm-0" type="submit">Search</b-button>
</b-nav-form>
</b-navbar>
</div>
输入组同样适用
<div>
<b-navbar type="light" variant="light">
<b-nav-form>
<b-input-group prepend="@">
<b-form-input placeholder="Username"></b-form-input>
</b-input-group>
</b-nav-form>
</b-navbar>
</div>
<b-navbar-toggle> 和 <b-collapse is-nav>
导航栏默认情况下没有响应能力,但你可以轻松修改它们以改变这一点。响应行为取决于我们的 <b-collapse> 组件。
将 <b-navbar-nav> 组件包装在 <b-collapse is-nav> 中(记住设置 is-nav 属性!)以指定将根据特定断点折叠的内容。在 <b-collapse> 上分配一个文档唯一的 id 值。
使用 <b-navbar-toggle> 组件控制折叠组件,并将 <b-navbar-toggle> 的 target 属性设置为 <b-collapse> 的 id。
在 <b-navbar> 上将 toggleable 属性设置为希望内容自动展开的所需断点。可能的 toggleable 值为 sm、md、lg 和 xl。将 toggleable 设置为 true(或空字符串)会将导航栏设置为始终折叠,而将其设置为 false(默认值)将禁用折叠(始终展开)。
<b-navbar-toggle> 组件默认左对齐,但如果它们跟随 <b-navbar-brand> 等同级元素,它们将自动右对齐。反转标记将反转切换器的放置。
请参阅本页上的第一个示例以供参考,还请参阅 <b-collapse> 了解折叠组件的详细信息。
除了用于控制折叠之外,<b-navbar-toggle> 还可用于切换 <b-sidebar> 组件的可见性。只需通过 target 属性指定 <b-sidebar> 的 ID。
在内部,<b-navbar-toggle> 使用 v-b-toggle 指令。
自定义导航栏切换
<b-navbar-toggle> 渲染默认的 Bootstrap v4 汉堡(这是一个背景 SVG 图像)。您可以通过可选范围 default 插槽提供您自己的内容(例如图标)。默认插槽范围包含属性 expanded,当折叠展开时它将为 true,当折叠收起时它将为 false。
请注意,expanded 范围属性仅在将 target 属性提供为 string(而不是 array)时才起作用。
<template>
<b-navbar toggleable type="dark" variant="dark">
<b-navbar-brand href="#">NavBar</b-navbar-brand>
<b-navbar-toggle target="navbar-toggle-collapse">
<template #default="{ expanded }">
<b-icon v-if="expanded" icon="chevron-bar-up"></b-icon>
<b-icon v-else icon="chevron-bar-down"></b-icon>
</template>
</b-navbar-toggle>
<b-collapse id="navbar-toggle-collapse" is-nav>
<b-navbar-nav class="ml-auto">
<b-nav-item href="#">Link 1</b-nav-item>
<b-nav-item href="#">Link 2</b-nav-item>
<b-nav-item href="#" disabled>Disabled</b-nav-item>
</b-navbar-nav>
</b-collapse>
</b-navbar>
</template>
打印
默认情况下,导航栏在打印时隐藏。通过设置 print 属性强制打印它们。
另请参阅
有关路由器链接特定属性,请参阅路由器支持参考页面。