ReactJS:带有折叠和非折叠项目的 Bootstrap4 NavBar
ReactJS: Bootstrap4 NavBar with collapse and non-collapse items
有一个开箱即用的解决方案来获得可折叠的水平导航栏:
<Navbar inverse fixedTop fluid collapseOnSelect>
<Navbar.Header>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav>
<LinkContainer to={'/'} exact>
<NavItem>
<Glyphicon glyph='home' /> CollapseLink1
</NavItem>
</LinkContainer>
<LinkContainer to={'/'}>
<NavItem>
<Glyphicon glyph='education' /> CollapseLink2
</NavItem>
</LinkContainer>
<LinkContainer to={'/'}>
<NavItem>
<Glyphicon glyph='th-list' /> CollapseLink3
</NavItem>
</LinkContainer>
</Nav>
</Navbar.Collapse>
</Navbar>
这会在大屏幕上提供水平菜单:
以及小屏幕上的垂直菜单:
但假设我想添加几个图标按钮,无论发生什么,它们都应始终保持在右上角:
我读过将可折叠物品与不可折叠物品分开的示例,它们很快就会变得非常尴尬。这一定是一个普遍的需求,没有开箱即用的方法吗?
构建此设计的好方法是什么?
您可以使用 'position:absolute' 来控制您要设置样式和位置的 2 个链接...
相关js:
class App extends Component {
constructor() {
super();
this.toggle = this.toggle.bind(this);
this.state = {
isOpen: false,
name: 'React'
};
}
toggle() {
this.setState({
isOpen: !this.state.isOpen
});
}
render() {
return (
<div>
<Navbar color="light" light expand="md">
<NavbarToggler onClick={this.toggle} />
<Collapse isOpen={this.state.isOpen} navbar>
<Nav navbar>
<NavItem>
<NavLink href="/components/"> Components</NavLink>
</NavItem>
<NavItem>
<NavLink href="https://github.com/reactstrap/reactstrap">GitHub</NavLink>
</NavItem>
<UncontrolledDropdown nav inNavbar>
<DropdownToggle nav caret>
Options
</DropdownToggle>
<DropdownMenu right>
<DropdownItem>
Option 1
</DropdownItem>
<DropdownItem>
Option 2
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
Reset
</DropdownItem>
</DropdownMenu>
</UncontrolledDropdown>
</Nav>
</Collapse>
<NavbarBrand href="/" className='floatRight'>
<a href="#">[link A]</a>
<a href="#">[link B]</a>
</NavbarBrand>
</Navbar>
<Hello name={this.state.name} />
<p>
Start editing to see some magic happen :)
</p>
</div>
);
}
}
相关css:
.floatRight{ position: absolute; right: 0; top: 6px;}
.floatRight a{ padding-left:10px;}
.navbar{padding:0;}
.navbar-light .navbar-toggler {margin:10px}
有一个开箱即用的解决方案来获得可折叠的水平导航栏:
<Navbar inverse fixedTop fluid collapseOnSelect>
<Navbar.Header>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav>
<LinkContainer to={'/'} exact>
<NavItem>
<Glyphicon glyph='home' /> CollapseLink1
</NavItem>
</LinkContainer>
<LinkContainer to={'/'}>
<NavItem>
<Glyphicon glyph='education' /> CollapseLink2
</NavItem>
</LinkContainer>
<LinkContainer to={'/'}>
<NavItem>
<Glyphicon glyph='th-list' /> CollapseLink3
</NavItem>
</LinkContainer>
</Nav>
</Navbar.Collapse>
</Navbar>
这会在大屏幕上提供水平菜单:
以及小屏幕上的垂直菜单:
但假设我想添加几个图标按钮,无论发生什么,它们都应始终保持在右上角:
我读过将可折叠物品与不可折叠物品分开的示例,它们很快就会变得非常尴尬。这一定是一个普遍的需求,没有开箱即用的方法吗?
构建此设计的好方法是什么?
您可以使用 'position:absolute' 来控制您要设置样式和位置的 2 个链接...
相关js:
class App extends Component {
constructor() {
super();
this.toggle = this.toggle.bind(this);
this.state = {
isOpen: false,
name: 'React'
};
}
toggle() {
this.setState({
isOpen: !this.state.isOpen
});
}
render() {
return (
<div>
<Navbar color="light" light expand="md">
<NavbarToggler onClick={this.toggle} />
<Collapse isOpen={this.state.isOpen} navbar>
<Nav navbar>
<NavItem>
<NavLink href="/components/"> Components</NavLink>
</NavItem>
<NavItem>
<NavLink href="https://github.com/reactstrap/reactstrap">GitHub</NavLink>
</NavItem>
<UncontrolledDropdown nav inNavbar>
<DropdownToggle nav caret>
Options
</DropdownToggle>
<DropdownMenu right>
<DropdownItem>
Option 1
</DropdownItem>
<DropdownItem>
Option 2
</DropdownItem>
<DropdownItem divider />
<DropdownItem>
Reset
</DropdownItem>
</DropdownMenu>
</UncontrolledDropdown>
</Nav>
</Collapse>
<NavbarBrand href="/" className='floatRight'>
<a href="#">[link A]</a>
<a href="#">[link B]</a>
</NavbarBrand>
</Navbar>
<Hello name={this.state.name} />
<p>
Start editing to see some magic happen :)
</p>
</div>
);
}
}
相关css:
.floatRight{ position: absolute; right: 0; top: 6px;}
.floatRight a{ padding-left:10px;}
.navbar{padding:0;}
.navbar-light .navbar-toggler {margin:10px}