如何使用Bootstrap构建画布外导航布局

Bootstrap旨在通过提供一些常用的Web组件来满足许多情况。 有按钮,响应式导航栏,选项卡,工具提示,轮播等。 尽管如此,即使Bootstrap提供了所有玩具,它仍然缺少一种非常流行的模式:离画布导航。

这种导航方法将菜单从可见区域(画布)中关闭,从而提供了更多空间来聚焦于主要内容。 画布外导航最初在本机移动应用程序中变得很流行,然后进入了响应式网络(部分感谢Luke Wroblewski的文章 )。 通常,它使用jQuery来切换导航状态。

说到这,Bootstrap如此流行,社区支持如此之大,开发人员已经创建了插件或扩展,以包含官方 Bootstrap中不可用的组件。 其中包括一个用于实现画布外导航的控件。

在本教程中,我将向您展示如何向Bootstrap添加画布外导航,其扩展名为Arnold Daniels的Jasny Bootstrap 。 我选择此选项的两个原因是:

  • 顾名思义,该扩展是专门为Bootstrap构建的。 因此,其中的代码库与Bootstrap的代码库保持一致。 它在命名和实现组件的方法方面遵循Bootstrap约定。
  • Jasny Bootstrap附带了画布外导航插件,该插件可通过一系列类,HTML5数据属性和JavaScript初始化灵活配置。

关于凉亭的一点

在本教程中,我将引导您完成一个使用Bower帮助网站维护的工作流。 因此,请确保已在系统上安装Bower。 如果您不想使用Bower,那很好,但是为了让您入门,我们还发布了一些关于Bower的初学者教程。

好吧,让我们开始吧。

1.入门

让我们通过创建工作目录开始我们的项目,在工作目录中放置所需的点点滴滴。

working-dir
|-- assets
|   |-- css
|   |-- img
|   `-- js
`-- sources
    |-- js
    `-- less

我们将使用资产文件夹来保存网站资产,例如图像,样式表,JavaScript文件等。 在sources文件夹中,我们将放置LESS和JavaScript的未编译源代码。 然后,我们将与Bower一起定义项目规范-名称,版本,依赖项以及其他。

在工作目录中运行bower init命令,并填写所有提示。

您不必完全按照上面显示的输入进行操作; 根据您自己的要求调整输入。 完成后,将出现一个新文件名为bower.json ,其中包含我们刚刚填写的项目规范。

2.安装项目依赖项

这个项目需要两个框架。 即Bootstrap和Jasny Bootstrap。 在安装它们之前,让我们指定Bower必须在其中安装软件包的目录名称。 为此,请在工作目录的根目录下创建一个名为.bowerrc的新文件,并将以下几行内容命名为该文件夹。

{
	"directory": "components"
}

然后,在bower.json包含以下行,这将告诉Bower项目依赖项为Bootstrap和Jasny Bootstrap 3.1.1版或更高版本。

"devDependencies": {
    "bootstrap": ">=3.1.1",
    "jasny-bootstrap": ">=3.1.1"
}

在“终端”或“命令提示符”中,运行bower install命令以立即获取swe已指定的所有依赖项。

如.bowerrc指定的.bowerrc ,项目依赖项现在应位于新生成的名为components文件夹中。

3.组织样式表

准备好所有依赖项之后,我们就可以开始进行项目了! 我们将通过组织样式表拉开序幕。 我们将需要创建四个LESS样式表,即:

  • variables.less顾名思义,此样式表包含Bootstrap中使用的变量。 如果希望在不影响原始文件的情况下自定义变量,我们将制作此副本( 从此Gist复制Bootstrap变量 )。
  • variables-jasny.less类似地,此样式表包含在扩展Jasny Bootstrap中使用的变量 ( 在此处复制变量 )。
  • app.less此样式表包含对构建网站所需的Bootstrap和Jasny Bootstrap样式表的引用(您可以在此处复制内容 )。
  • style.less我们将在此样式表中编写我们自己的样式。

创建并放在一起,如下所示:

...
`-- sources
	|-- js
	`-- less
		|-- app.less
		|-- style.less
		|-- variables-jasny.less
		`-- variables.less

接下来是编译这些样式表。 为此,我们将使用以下配置的Koala :

  • 确保已选中“ 自动编译”选项。 因此,无论何时进行更改,Koala都会立即将LESS文件编译为CSS。
  • 将app.less以及style.less输出目的地设置为assets/css/目录。
  • 选择Source Map选项以生成.map以便更轻松地调试样式表。 如果这是您第一次听说Source Map,请查看我们的Tuts +代码Source Map 101教程。

设置完成后,将LESS编译为CSS。

注意 : 请记住,如果您喜欢另一种编译LESS文件的方法,则没有义务使用Koala。

4.建立网页

创建一个名为index.html的新HTML文件。 除了基本HTML5裸结构之外, index.html文件还将包含meta视口标记 ,meta description标记,标题以及样式表的链接,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta name="description" content="A demonstration on adding off-canvas menu to Bootstrap with Jasny Bootstrap">
	<title>Bootstrap Off-canvas Navigation</title>

	<link href="assets/css/app.css" rel="stylesheet">
    <link href="assets/css/style.css" rel="stylesheet">
</head>
<body>

</body>
</html>

画布外导航

现在,让我们添加画布外导航。 当涉及到组件标记时,Jasny Bootstrap使用与Bootstrap类似的方法。 这是我们从画布外导航结构开始的方式:

<nav id="offcanvas" class="navmenu navmenu-inverse navmenu-fixed-right navmenu-site offcanvas" role="navigation">
</nav>

它包含几个类。 navmenu , navmenu-inverse , navmenu-fixed-right这三个类将元素定义为navmenu 。 导航菜单是Jasny Bootstrap组件之一,它将分配的元素设置为垂直导航。 offcanvas是将元素设置为离开视口的类。 此外,我们还添加了一个新类navmenu-site ,它将使我们能够使用自己的样式自定义导航。

可以使用<ul>元素和nav navmenu-nav类来布局画布导航中的菜单项,就像这样。

<nav id="offcanvas" class="navmenu navmenu-inverse navmenu-fixed-right navmenu-site offcanvas" role="navigation">
	<ul>
		<li><a href="#">Home</a></li>
		<li><a href="#">Blog</a></li>
		<li><a href="#">Portfolio</a></li>
	</ul>
</nav>

非常欢迎您将原始的Bootstrap组件与该标记结合在一起,例如Dropdowns和Buttons 。

我们将在本教程中添加的导航HTML标记很长。 因此,为简单起见,可以通过此Gist获得完整的标记。 。

网页内容

下图显示了我们布置网页内容的计划:

如上所示,网站内容将包括徽标,带有“汉堡包”图标的切换按钮以使导航进出滑动,以及带有大按钮的几行标语-称为号召性用语按钮

内容HTML标记同样冗长,无法粘贴在本教程中。 相反,请随时从Gist复制整个内容。

5.风格

本文中的许多样式将仅仅是装饰性的,围绕颜色,尺寸和位置旋转。 通过自定义Bootstrap预定义样式并编写我们自己的样式,可以实现这种装饰样式。 因此,我不愿逐步执行可能已经显而易见的步骤,而是要指出一些最重要的关键细节。

首先,在编写一行之前,将app.less样式表导入style.less 。 这将使我们能够重用其中的变量和Mixins。

@import (reference) 'app.less';

其次,我们创建一个LESS变量来定义图像路径。 我们将变量命名为@path-img 。

@path-img: '../../assets/img/';

每当我们需要在样式表中引用图像时,我们都将包含此变量。 下面的示例显示了我们如何使用它指向徽标。

.masthead-brand {
    margin-top: 10px;
    margin-bottom: 10px;
    float: left;
    text-align: left;
    margin-top: -15px;
    a {
        .text-hide();
        display: inline-block;
        background-image: url('@{path-img}logo.png');
        background-repeat: no-repeat;
        background-size: 100% 100%;
        width: 100px;
        height: 33px;
    }
}

垂直居中

最后,我们想将内容,标语和按钮垂直居中。 目前,CSS还没有给我们提供一种仅使用单个属性声明来垂直对齐内容的便捷方法。 因此,有许多方法可以实现它,说实话,没有任何方法比其他方法更好。

在这种情况下,我们将使用CSS Table显示方法对齐内容。 如果看一下网页标记,您会看到我们用两个<div>包装了网页内容。 每个<div>都分配有site-wrapper和site-wrapper-inner类,就像这样。

<div class="site-wrapper">
	<div class="site-wrapper-inner">
	...
	</div>
</div>

为了使内容垂直对齐,我们将site-wrapper的display属性设置为table ,并通过将width和height为100%使其覆盖整个视口。 然后,将内部包装器display属性设置为table-cell 。 现在,这使我们可以应用vertical-align属性来垂直对齐内容。

.site-wrapper {
    display: table;
    width: 100%;
    height: 100%;
    min-height: 100%;
}
.site-wrapper-inner {
    display: table-cell;
    vertical-align: middle;
}

有关样式规则的详细信息,请参见本要点 。

6.使网页活跃起来

添加样式后,网站现在应该具有外观,如下图所示:

但是,该网站尚未完全正常运行。 尝试点击“汉堡包”图标; 不会滑出画布。此功能来自JavaScript库,因此我们必须对其进行编译并将其添加到网站中。

为了使用画布外导航,我们需要四个JavaScript库,分别是jQuery , transition.js , dropdown.js以启用我们在导航中添加的下拉菜单,最后是offcanvas.js 。 要将它们一起编译,请在source / js目录中创建一个新JavaScript文件。 在这种情况下,我们将其命名为app.js。

...
`-- sources
	|-- js
	|	`-- app.js
	`-- less

像这样,使用@koala-prepend导入JavaScript库。

//@koala-prepend "../../components/jquery/dist/jquery.js"
//@koala-prepend "../../components/bootstrap/js/transition.js"
//@koala-prepend "../../components/jasny-bootstrap/js/offcanvas.js"

将输出设置到/ assets / js目录,然后单击“ 编译”按钮。 不要忘记在网页上链接已编译的文件。

<script src="assets/js/app.min.js"></script>

现在,您应该能够将画布外导航进出。

过渡

此外,您还可以在页面底部添加以下JavaScript,这将启用下拉菜单的过渡效果。

<script>
(function() {
    var $offCanvas = $('#offcanvas'),
        $dropdown  = $offCanvas.find('.dropdown');
    $dropdown.on('show.bs.dropdown', function() {
        $(this).find('.dropdown-menu').slideDown(350);
    }).on('hide.bs.dropdown', function(){
        $(this).find('.dropdown-menu').slideUp(350);
    });
})();
</script>

结论

在本教程中,我们使用了名为Jasny Bootstrap的扩展程序,包括了功能齐全的画布导航到Bootstrap。

在本教程中使用Bower将有助于我们维护和了解这两个库的最新信息。 一段时间后,这两个库可能会更新。 使用Bower,您可以运行bower list命令以列出所有已安装的Bower软件包,并验证每个软件包的新版本是否可用。

如果有新版本可用,只需运行bower update或bower install命令来更新软件包。 就这么简单。

我希望您从本教程中学到了一些方法和技巧,如果您有任何问题,可以随时在评论中保留。

翻译自: https://webdesign.tutsplus.com/tutorials/how-to-build-an-off-canvas-navigation-layout-with-bootstrap--cms-21991

Bootstrap 导航栏 导航栏通常位于页面的顶部,它包含了一系列链接或按钮,用于跳转到网站的不同部分。Bootstrap 的导航栏组件支持多种样式,包括水平导航栏、垂直导航栏、下拉菜单等。Bootstrap 的导航栏组件是一个非常强大的工具,可以帮助你快速创建美观且功能齐全的导航菜单。通过使用 Bootstrap 的样式类和自定义 CSS,你可以根据自己的需求定制导航栏的外观。希望本文能帮助你更好地了解 Bootstrap 导航栏的使用方法。 阅读详情

相关推荐

bootstrap 导航栏居中响应式剧中布局

Title Toggle navigation

Deus ex 5512

jasny-bootstrap组件-文件上传

jasny-bootstrap组件-文件上传,和form表单一同提交。

人的一生就是在学习的道路上不断进步 2276

Bootstrap布局组件:导航与导航栏设计实践

本文深入探讨了Bootstrap框架中导航和导航栏的设计与实现,涵盖了标签页的切换效果、定位、响应式设计等关键特性。通过具体的代码示例和图解,本文展示了如何利用Bootstrap提供的工具类来构建功能丰富、样式优雅的导航系统。

weixin_42284380的博客 771

python 构建简单窗口_用Python构建聊天窗口小部件

python 构建简单窗口Building quality digital products is a requirement toward acquiring long-term customers, but inefficient communication is an efficient way to lose them just as quickly as you gain them. T...

culiu9261的博客 2434

Jasny-Bootstrap 的简单实例

JasnyBootstrap页面操作的的简单实例,可实现固定格式的文本。

bootstrap-canvas:利用所有新的 es6 功能来制作引导画布解决方案

用法 如果你想开始使用这个库, APP.MIN.JS在你的项目中包含APP.JS或APP.MIN.JS一样简单。 唯一的要求是你在这个库之前加载了 jQuery。 我习惯性地使用 jQuery。 如果此依赖项惹恼了您,请告诉我,我可以在它存在的几个地方将其删除。 贡献 贡献需要克隆在此处找到的整个 repo,并安装所有依赖项:* Fabric * node-canvas 必须在此 repo 中的任何内容之前安装(正确?)。 之后,克隆 repo 和npm install 。 计划 开始将 end-dev API 作为新模块进行开发 API.js (find a better name, should be proj name). Thinking of 'Bootstrap Canvas' Constructor: - take an option object OR an

bootstrap实践录:用canvas画图

因工作需要,最近研究了一下 canvas 画图。

李迟的专栏 1270

bootstrap-offcanvas-nav:使用Jasny Bootstrap在Bootstrap中添加画布菜单

Bootstrap画布菜单演示 使用将画布菜单添加到Bootstrap的。

使用BootStrap进行响应式布局案例

(1)首先下载BootStrap,把bootstrap.min.css拷贝到项目中。(2)新建style.css,实现代码如下:.row{ margin-bottom: 20px; } .row .row{ margin-top: 10px; margin-bottom: 0px; } [class*="col-"]{ padding-top: 15p...

乞力马扎罗的雪CYF的博客 7906

ANSYS命令流黑箱揭秘:流体渗透压力载荷的七种收敛优化策略

本文深入解析ANSYS Workbench中流体渗透压力载荷的七种收敛优化策略,重点探讨接触探测点迭代逻辑、PPCN阈值动态调整及FPAT参数优化等关键技术。通过命令流示例和实战技巧,帮助工程师有效解决流体与结构相互作用仿真中的收敛难题,提升计算效率和精度。

weixin_29274337的博客 523

清华开源GPGPU“承影Ventus”初体验:用RISC-V RVV指令集跑通第一个OpenCL程序

本文详细介绍了清华大学开源GPGPU“承影Ventus”的开发实践,展示了如何基于RISC-V RVV指令集运行首个OpenCL程序。从环境配置、内核开发到性能优化,全面解析了这一创新架构的开发流程,为开发者提供了在RISC-V生态中进行通用GPU计算的实用指南。

weixin_30415113的博客 490

BootStrap基本使用

html超文本标记语言,多出来的html为超文本标记语言,是一种标识性语言css为层叠样式表css为层叠样式表,为前端三剑客之一

m0_60027772的博客 2万+

ZYNQ程序固化实战:从BOOT.bin生成到QSPI/SD卡双启动模式详解

本文详细解析了ZYNQ 7000系列程序固化的完整流程,重点解决了程序断电丢失问题。通过实战演示,从生成BOOT.bin文件到配置QSPI与SD卡双启动模式,逐步指导开发者实现程序在外部存储中的永久驻留,确保产品脱离调试器独立运行。

weixin_29193259的博客 517

Bootstrap框架使用及可视化布局

Bootstrap框架的入门学习1. Bootstrap 概述2. Bootstrap 环境配置3. Bootstrap 基本使用4. Bootstrap 可视化布局 1. Bootstrap 概述 Bootstrap是一个前端框架,由Twitter开发,非常受欢迎。 Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。 相当于半成品;开发人员基于框架可以进行二次开发,大大的节省开发人员的开发时间。 特点: 定义了很多的css样式和js插件

Hello, New World! 6683

PyTorch复现EEG-TCNet踩坑记:从BCI IV2a数据到TCN块缺失的完整解决方案

本文详细解析了使用PyTorch复现EEG-TCNet模型的全过程,重点解决了BCI IV2a数据集预处理和TCN模块缺失的技术难题。通过标准化数据流程、跨受试者验证策略以及三种因果卷积实现方案,为运动想象分类任务提供完整解决方案,帮助研究者高效实现模型复现与优化。

weixin_30699955的博客 319

OLLAMA_HOST环境变量设置全攻略:从127.0.0.1到局域网共享的完整配置

本文详细解析了OLLAMA_HOST环境变量的核心作用与配置方法,指导用户如何将Ollama服务从仅限本机访问(127.0.0.1)扩展到局域网共享。文章涵盖了macOS、Linux、Windows三大平台的实战配置步骤,并提供了安全加固、性能优化及常见故障排查方案,是解决多设备协作访问本地AI模型的完整指南。

weixin_28455801的博客 1897

bootstrap布局_如何使用LayoutIt构建HTML Bootstrap布局!

p>如果您想建立一个响应式网站,那么Bootstrap将是您的便捷工具。 这项最新的框架创新为Web开发人员带来了一种创建总体上更轻松,更快,响应更好的网站和应用程序的新方法。 但是,这非常困难,更不用说从头开始构建布局了。 为了使此过程更轻松,更快捷,在本文中,我们将介绍LayoutIt! 这可以帮助您轻松地基于Bootstrap设计HTML布局。 LayoutIt! 是一个基...

cune1359的博客 3410

强化学习算法案例——一个经典的走迷宫任务。

作者:禅与计算机程序设计艺术 1.简介 在强化学习(Reinforcement Learning, RL)中,有一个经典的任务——走迷宫,其原理简单易懂,但它的实际意义却深远,它让计算机学习如何通过策略网络(policy network),以最佳的方式解决复杂的任务。本文将介绍如何用强化学习解决这个经典

AI天才研究院 3217

【Bootstrap】bootstrap入门之栅格布局、弹性布局、组件类_02

Boot最重要的3个知识:手写媒体查询@media;栅格布局;scss。栅格布局,把所有的布局看做一行,用列数来表示每一个块占据宽度的大小,一行一共12列。栅格系统分为行.row和列.col,行必须包裹列。可以是一行包多列,也可以写多行包多列。

青春木鱼的博客 5604

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站

私家侦探如何追踪难以找到的人,掌握几个很少人知道的在线免费查询网站,搜索人名、电话号码以及地址的开源网站。

代码讲故事 6487

交换机四种光互联技术:OIO、OBO、NPO与CPO

在过去几十年里,数据中心交换机主要依赖电信号通过铜线进行数据传输。然而,随着数据传输速率从100Gbps向400Gbps、800Gbps甚至1.6Tbps迈进,传统电互联(Electrical Input & Output, EIO)面临三大瓶颈:信号衰减、功耗激增和空间限制。例如,高速信号在长距离铜线传输中会产生严重的信号失真,迫使设计者加入数字信号处理器(DSP)来补偿信号衰减,这进一步推高了功耗和成本。此外,传统可插拔光模块的体积较大,限制了端口密度,难以满足现代数据中心对高带宽密度的需求。

网络技术联盟站 3134

23种Bootstrap导航菜单布局:打造极致用户体验的利器

23种Bootstrap导航菜单布局:打造极致用户体验的利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代网页设计中,导航菜单不仅是用户浏览网站的指南,更是提升用户体验的关键元素。为了满足各种复杂的导航需求,我们推出了这款基于Bootstrap的导航菜单布局设计jQuery插件。该插件集成了23种不同的导航菜单效果,包括下拉菜单、大型菜单、侧边栏菜单、购物车菜...

gitblog_09705的博客 1013

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

bootstrap侧边导航栏_bootstrap响应式布局

哈喽,大家好呀,我是滑稽君。响应式布局是什么?其实就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。简单来说,我们希望网站在移动设备和PC上都能有一个好的呈现效果。当检测到设备不同时,我们可以给出不同的浏览、布局方案。我们可以通过Bootstrap来实现,那么它又是什么呢?Bootstrap基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,...

weixin_33007509的博客 2251

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Bootstrap(bootstrap的栅格系统、bootstrap的布局容器)

一、bootstrap的栅格系统 用固定的格子进行网页布局,又称为网格布局 1、响应式栅格系统 使用响应式栅格系统进行页面布局时,网页根据不同的显示终端展示不同的页面结构。 例如,在校屏幕上由某些模块将按照不同的方式排列或者被隐藏。 2、创建使用响应式栅格系统页面的步骤(1)创建html页面 定义页头、导航、主要内容、侧边栏和页尾部分的HTML结构代 码(2)编写css样式 页头和页尾分别显示在网页的最上方和最下方,而中间的导航、主要内容和侧边栏根据浏览器窗口的大小...

m0_46420078的博客 6834

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

23种Bootstrap导航菜单布局

23种Bootstrap导航菜单布局 去发现同类优质开源项目:https://gitcode.com/ 资源描述 本仓库提供了一款基于Bootstrap的导航菜单布局设计jQuery插件。该插件集成了23种Bootstrap导航菜单效果,包括下拉菜单、大型菜单、侧边栏菜单、购物车菜单等,能够满足大部分网页导航菜单设计的需求。 功能特点 多样化的布局选择:提供了23种不同的导航菜单布局,涵盖了各种...

gitblog_09765的博客 477
上一篇: ar foundation_使用Foundation 5构建顶部栏的画布外导航
下一篇: 如何创建用于嵌入YouTube视频的Web组件
daique1908
博客等级 码龄10年 29粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值