- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我开始使用 react-bootstrap
构建我的 UI,现在我的一项重要任务是使用标准 bootstrap
组件创建 SideBar Accordion Menu。我找到了 this使用 panel-group
和 table
的示例,但我认为这不是最好的方法,因为 nav
以自然的方式导航更好组件。
我希望我的 SideBar 菜单代码看起来像这样(react-bootstrap
组件):
<Nav bsStyle="pills" stacked>
<NavItem title="Item 1">
<Nav bsStyle="pills" stacked>
<NavItem title="Sub Item 1">Sub Item 1</NavItem>
<NavItem title="Sub Item 2">Sub Item 2</NavItem>
<NavItem title="Sub Item 3">Sub Item 3</NavItem>
</Nav>
</NavItem>
<NavItem title="Item 2">Item 2</NavItem>
<NavItem title="Item 3">Item 3</NavItem>
</Nav>
任何关于 react-bootstrap
或只是 bootstrap
的建议都会有用。
最佳答案
我找到了纯粹的 nav
解决方案。所以也许它可以帮助别人。解决方案是使用标准的“react-bootstrap”组件,例如 Navbar
,结合 bootstrap
css 定制。
示例代码如下:
SideBarMenu.jsx
import React from 'react';
import styles from './sideBarMenu.css';
import {Nav, NavItem, Navbar, NavDropdown, MenuItem, Glyphicon} from 'react-bootstrap';
export default React.createClass( {
render: function() {
return <div id="sidebar-menu" className={styles.sideBarMenuContainer}>
<Navbar fluid className={styles.sidebar} inverse >
<Navbar.Header>
<Navbar.Brand>
<a href="/">User Name</a>
</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Navbar.Text className={styles.userMenu}>
<Navbar.Link href="#"><Glyphicon glyph="home"/></Navbar.Link>
<Navbar.Link href="#"><Glyphicon glyph="log-out"/></Navbar.Link>
</Navbar.Text>
<Nav>
<NavDropdown eventKey={1} title="Item 1">
<MenuItem eventKey={1.1} href="#">Item 1.1</MenuItem>
</NavDropdown>
<NavItem eventKey={2}>Item 2</NavItem>
<NavItem eventKey={3}>Item 3</NavItem>
</Nav>
</Navbar.Collapse>
</Navbar>
</div>;
}
});
sideBarMenu.css
.sideBarMenuContainer {
position: fixed;
height: 100%;
}
.userMenu {
width: 100%;
text-align: center;
margin-right: 0px;
margin-left: 0px;
margin-top: 0px;
}
nav.sidebar :global(.navbar-brand) :global(.glyphicon) {
margin-right: 0px;
}
/*Remove rounded coners*/
nav.sidebar.:global(navbar) {
border-radius: 0px;
}
nav.sidebar {
-webkit-transition: margin 200ms ease-out;
-moz-transition: margin 200ms ease-out;
-o-transition: margin 200ms ease-out;
transition: margin 200ms ease-out;
}
/* .....NavBar: Icon only with coloring/layout.....*/
/*small/medium side display*/
@media ( min-width : 768px) {
/*Center Brand*/
nav.sidebar.:global(navbar).sidebar>.container :global(.navbar-brand), :global(.navbar)>:global(.container-fluid) :global(.navbar-brand)
{
margin-left: 0px;
}
/*Center Brand*/
nav.sidebar :global(.navbar-brand), nav.sidebar :global(.navbar-header) {
text-align: center;
width: 100%;
margin-left: 0px;
}
/*Center Icons*/
nav.sidebar a {
padding-right: 13px;
}
/*adds border top to first nav box */
nav.sidebar :global(.navbar-nav)>li:first-child {
border-top: 1px #e5e5e5 solid;
}
/*adds border to bottom nav boxes*/
nav.sidebar :global(.navbar-nav)>li {
border-bottom: 1px #e5e5e5 solid;
}
/* Colors/style dropdown box*/
nav.sidebar :global(.navbar-nav) :global(.open) :global(.dropdown-menu) {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
/*allows nav box to use 100% width*/
nav.sidebar :global(.navbar-collapse), nav.sidebar :global(.container-fluid) {
padding: 0 0px 0 0px;
}
/*colors dropdown box text */
:global(.navbar-inverse) :global(.navbar-nav) :global(.open) :global(.dropdown-menu)>li>a {
color: #777;
}
/*gives sidebar width/height*/
nav.sidebar {
width: 200px;
height: 100%;
margin-left: -160px;
float: left;
z-index: 8000;
margin-bottom: 0px;
}
/*give sidebar 100% width;*/
nav.sidebar li {
width: 100%;
}
/* Move nav to full on mouse over*/
nav.sidebar:hover {
margin-left: 0px;
}
/*for hiden things when navbar hidden*/
:global(.forAnimate) {
opacity: 0;
}
}
/* .....NavBar: Fully showing nav bar..... */
@media ( min-width : 1330px) {
/*Show all nav*/
nav.sidebar {
margin-left: 0px;
float: left;
}
/*Show hidden items on nav*/
nav.sidebar :global(.forAnimate) {
opacity: 1;
}
}
nav.sidebar :global(.navbar-nav) :global(.open) :global(.dropdown-menu)>li>a:hover, nav.sidebar :global(.navbar-nav) :global(.open) :global(.dropdown-menu)>li>a:focus
{
color: #CCC;
background-color: transparent;
}
nav:hover :global(.forAnimate) {
opacity: 1;
}
section {
padding-left: 15px;
}
请注意,我将 webpack
与 css-loader
模块范围结合使用,因此 :global
表示 bootstrap
css 类名。
关于javascript - 使用 Nav 组件和 react-bootstrap 的 Accordion 侧边栏菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39974486/
有人可以告诉我 Bootstrap、Twitter Bootstrap 和 Bootstrap 3 之间有什么区别吗? 最佳答案 在 CSS 框架的上下文中,Bootstrap 和 Twitter B
什么是 Bootstrap 文档中的屏幕阅读器??? >>> bootstrap document 不知道什么是屏幕阅读器? 最佳答案 它是视力不佳或由于某种原因无法从屏幕上阅读的人使用的工具;它会向
我想更新网站上的 Bootstrap,但我不知道安装的版本。 如何仅使用 bootstrap.css 和 bootstrap.min.js 文件来识别 bootstrap 版本? CSS 文件中没有版
很抱歉问了这么一个愚蠢的问题,但我真的不清楚这些。 Bootstrap 是一个非常棒的库,它节省了开发人员的大量工作。 因为它提供了很多功能,比如 节省大量时间。 响应式功能。 一致的设计。 便于使用
我正在使用 ng2-bootstrap对于 Angular 2 项目。 这个包同时支持Bootstrap 3和4,我安装后默认使用Bootstrap 3。我没有找到任何关于切换的信息。 如何从 Boo
我计划在我的项目中使用 Bootstrap 4 和 angular 4,但我对 npm install --save @ng-bootstrap/ng-bootstrap 和 npm install
单击删除按钮后,我设置了警报。 但它的默认高度更大,我想让它更小(高度)。 我试过 display-4 属性(property),但它没有工作。 我已通过 w-50 将宽度设置为屏幕的一半,但警报的一
我使用 Bootstrap 按钮下拉菜单来显示表单。我通过调用 stopPropagation 禁用了单击时消失的下拉菜单(当用户操作表单时) .表单的元素之一是下拉列表。如果我使用 native h
twitter-bootstrap 中的“bootstrap”一词是什么意思?在许多 gem 中都有“bootstrap”这个词。我搜索了其中的含义,但无法得出结论。那么有人可以在这种情况下给出“Bo
由于 Bootstrap 5 不再使用 jQuery 并且正在使用 vanilla JS,我想知道是否仍然建议使用 Bootstrap-Vue,不管 Bootstrap-Vue 还不支持 Bootst
我正在使用 codeigniter 框架,我正在使用 bootstrap typeahead,一切都很好,但我的问题是当我将它放在 bootstrap 模式中时,bootstrap typeahead
我刚刚完成安装 bootstrap 5 版本 ^5.0.0-alpha1并在 app.js 中导入 Bootstrap import "bootstrap" 其他.js var myModal = n
我一直在尝试在使用选项卡的页面上实现 ScrollSpy。 这是我的 body 标签: 这是我的标签 HTML: Home Profile
如果您选择使用 Bootstrap-Xtra,您是否应该也包括原始的 bootstrap.css,或者 bootstrap-xtra.css 应该是一个完整的替代品。 例如,bootstrap-xtr
我正在使用 bootbox 创建一个对话框。 bootbox.dialog({ message: 'Datepicker input: ', title: "Custom label"
我正在将使用 Bootstrap 构建的 Web 应用程序迁移到 React 和 react-bootstrap,两者都很棒。我在 react-bootstrap 中没有看到的一件事是如何顺利集成 B
我正在使用 Bootstrap 3 RC,默认按钮是带有黑色文本的深灰色,而不是带有黑色文本的浅灰色。我已经尝试过 CDN 链接和离线。我还清空了我的浏览器缓存以防万一。有没有其他人经历过这个?这可能
在我的一个项目中,我曾经有 bootstrap-tagsinput http://timschlechter.github.io/bootstrap-tagsinput沿着 bootstrap-2.3
下拉菜单在 Angular-UI-Bootstrap 中不起作用?使用 Bootstrap-3 CSS 以下是代码。链接Click me for a dropdown出现。但不会在点击时切换。怎么了?
如何在 Bootstrap Table 中添加 Bootstrap 按钮 最佳答案 我已经想出了解决办法。我想和大家分享。 这是我的 table : # Visit
我是一名优秀的程序员,十分优秀!