css - Bulma - 在平板电脑上显示未折叠的导航栏
问题描述
在下面的可运行代码片段中,我设置了带有导航栏的基本 Bulma 布局。对于我拥有的链接的数量/大小,导航栏很早就变成了汉堡包。
如何仅在较小的屏幕上进行此中断?例如,仅在手机上的汉堡包。
(function() {
let burger = document.querySelector('.burger');
let nav = document.querySelector('#' + burger.dataset.target);
burger.addEventListener('click', function() {
burger.classList.toggle('is-active');
nav.classList.toggle('is-active');
});
})();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello Bulma!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.1.0/js/all.js"></script>
</head>
<body>
<nav class="navbar is-black is-desktop">
<div class="container">
<div class="navbar-brand">
<a href="#" class="navbar-item">
title
</a>
<span class="navbar-burger burger" data-target="navMenu">
<span></span>
<span></span>
<span></span>
</span>
</div>
<div id="navMenu" class="navbar-menu">
<div class="navbar-end">
<a href="#" class="navbar-item is-active">Home</a>
<a href="#" class="navbar-item">Two</a>
<a href="#" class="navbar-item">Three</a>
<a href="#" class="navbar-item">Four</a>
<a href="#" class="navbar-item">Five</a>
</div>
</div>
</div>
</nav>
<section class="section">
<div class="container">
<h1 class="title">
Hamburger Help!
</h1>
<p class="subtitle">
How do i get the nav links to show on tablet instead of the hamburger?
</p>
</div>
</section>
</body>
</html>
解决方案
您可以将$navbar-breakpoint
变量设置为平板电脑。默认情况下,导航栏断点设置为桌面。
在您的 main.scss 中,更新 Bulma 的$navbar-breakpoint
变量。
// Import only what you need from Bulma
@import "../node_modules/bulma/sass/utilities/_all.sass";
@import "../node_modules/bulma/sass/base/_all.sass";
@import "../node_modules/bulma/sass/elements/button.sass";
@import "../node_modules/bulma/sass/elements/container.sass";
@import "../node_modules/bulma/sass/elements/form.sass";
@import "../node_modules/bulma/sass/elements/title.sass";
$navbar-breakpoint: $tablet;
@import "../node_modules/bulma/sass/components/navbar.sass";
@import "../node_modules/bulma/sass/layout/hero.sass";
@import "../node_modules/bulma/sass/layout/section.sass";
@import "../node_modules/bulma/sass/grid/columns.sass";
我将$navbar-breakpoint
变量设置为$tablet
导入 _all.sass 实用程序后的值。您需要这样做,因为$tablet
必须先设置变量。
之后您需要$navbar-breakpoint
在导入导航栏组件之前设置变量,否则将使用默认桌面值。
推荐阅读
- vue.js - Nuxt Apollo GraphQL 错误:未提供所需类型的变量
- reactjs - 从编辑页面切换到新创建页面时出现错误“无法添加属性 0,对象不可扩展”
- sendmail - Sendmail,可以验证发件人吗?
- ios - 插入分组单元格空间
- pandas - 模块 Pandas 没有属性 Dataframe
- python-3.x - 如何在 django 中正确创建 InMemoryUploadedFile 对象
- laravel - laravel-translatable 不适用于 vue
- java - 使用 OpenPDF 居中和格式化文本
- python - 如何将时间序列 3d numpy 数组转换为 2d panda 数据帧,以便可以将其导出为 csv
- scala - 根据偶数/奇数索引将一个列表划分为两个列表