Css 使语义UI菜单折叠并响应
我在文件上到处找了,什么也没找。我正在寻找一个类似的导航栏折叠功能,它在引导中使用,汉堡(我可以点击)在它的侧面和菜单项中。请帮忙。Css 使语义UI菜单折叠并响应,css,semantic-ui,Css,Semantic Ui,我在文件上到处找了,什么也没找。我正在寻找一个类似的导航栏折叠功能,它在引导中使用,汉堡(我可以点击)在它的侧面和菜单项中。请帮忙。 语义用户界面看起来不错,但使用起来可能会很痛苦,如果你在计算语义,最正确的方法是将标签列表用作导航栏,并用javascript隐藏或不隐藏它。 实际上,html语义非常糟糕,非常复杂的代码可以做一些简单的事情,这是一个非常好(而且很简单)的实现(信用证:) HTML <div class="ui grid"> <div class="c
语义用户界面看起来不错,但使用起来可能会很痛苦,如果你在计算语义,最正确的方法是将标签列表用作导航栏,并用javascript隐藏或不隐藏它。 实际上,html语义非常糟糕,非常复杂的代码可以做一些简单的事情,这是一个非常好(而且很简单)的实现(信用证:) HTML
<div class="ui grid">
<div class="computer only row">
<div class="column">
<div class="ui menu">
<a class="item">Menu Item A</a>
<a class="item">Menu Item B</a>
<a class="item">Menu Item C</a>
<a class="item">Menu Item D</a>
</div>
</div>
</div>
<div class="tablet mobile only row">
<div class="column">
<div class="ui menu">
<a id="mobile_item" class="item"><i class="bars icon"></i></a>
</div>
</div>
</div>
</div>
<div class="ui pushable segment">
<div class="ui sidebar vertical menu">
<a class="item">Menu Item A</a>
<a class="item">Menu Item B</a>
<a class="item">Menu Item C</a>
<a class="item">Menu Item D</a>
</div>
<div class="pusher">
<div id="content" class="ui segment">
Content here
</div>
</div>
</div>
JavaScript
$('.ui.sidebar').sidebar({
context: $('.ui.pushable.segment'),
transition: 'overlay'
}).sidebar('attach events', '#mobile_item');
下面是我使用Semantic UI React中的响应组件制作的可折叠NavMenu组件:
import React, { useState } from 'react';
import { Menu, Responsive, Dropdown, DropdownMenu } from 'semantic-ui-react';
import { withRouter } from 'react-router-dom';
import LogoutModal from './LogoutModal';
function NavMenu(props) {
const [activeItem, setActiveItem] = useState('Laptop Item')
const [showModal, setShowModal] = useState(false)
return (
<div>
<Menu pointing secondary>
<Responsive as={Menu.Item} minWidth={790}
name='Laptop Item'
active={activeItem === 'Laptop Item'}
onClick={() => setActiveItem('Test Item')}
/>
<Responsive as={Menu.Item} minWidth={790}
name='Laptop Item 2'
active={activeItem === 'Laptop Item 2'}
onClick={() => setActiveItem('Test Item 2')}
/>
<Responsive as={Menu.Item} minWidth={790}
name='Laptop Item 3'
active={activeItem === 'Laptop Item 3'}
onClick={() => setActiveItem('Test Item 3')}
/>
<Menu.Menu position = 'right'>
<Responsive as ={Menu.Item} minWidth={790}
name = "Sign Out"
onClick={() => setShowModal(true)}
/>
</Menu.Menu>
<Responsive as ={Menu.Menu} maxWidth={789} position='right'>
<Dropdown
item
icon ='bars'
>
<Dropdown.Menu>
<Dropdown.Item text='Mobile/Tablet Item 1'/>
<Dropdown.Item text='Mobile/Tablet Item 2'/>
<Dropdown.Item text='Mobile/Tablet Item 3'/>
<Dropdown.Item text='Sign Out'/>
</Dropdown.Menu>
</Dropdown>
</Responsive>
</Menu>
</div>
)
}
export default withRouter(NavMenu);
import React,{useState}来自“React”;
从“语义ui反应”导入{Menu,Responsive,Dropdown,Dropdown Menu};
从“react router dom”导入{withRouter};
从“./LogoutModal”导入LogoutModal;
功能导航菜单(道具){
常量[activeItem,setActiveItem]=useState('Laptop Item')
const[showmodel,setshowmodel]=useState(false)
返回(
setActiveItem('测试项')}
/>
setActiveItem('测试项2')}
/>
setActiveItem('测试项目3')}
/>
setShowModal(真)}
/>
)
}
使用路由器导出默认值(导航菜单);
我想要一个传统的导航栏,左边是链接,右边是注销按钮。虽然iPad的像素宽度(如Chrome开发工具所示)是768px,但出于某种原因,我的断点是790px(如果有人能告诉我为什么会这样)。这就是为什么“笔记本电脑项目”的最小宽度为790,“手机/平板电脑项目”的最大宽度为789
我在语义UI文档中没有找到响应组件。它列在语义UI中的“插件”下
如果您不使用React,另一种选择是为移动用户实现侧栏
import React, { useState } from 'react';
import { Menu, Responsive, Dropdown, DropdownMenu } from 'semantic-ui-react';
import { withRouter } from 'react-router-dom';
import LogoutModal from './LogoutModal';
function NavMenu(props) {
const [activeItem, setActiveItem] = useState('Laptop Item')
const [showModal, setShowModal] = useState(false)
return (
<div>
<Menu pointing secondary>
<Responsive as={Menu.Item} minWidth={790}
name='Laptop Item'
active={activeItem === 'Laptop Item'}
onClick={() => setActiveItem('Test Item')}
/>
<Responsive as={Menu.Item} minWidth={790}
name='Laptop Item 2'
active={activeItem === 'Laptop Item 2'}
onClick={() => setActiveItem('Test Item 2')}
/>
<Responsive as={Menu.Item} minWidth={790}
name='Laptop Item 3'
active={activeItem === 'Laptop Item 3'}
onClick={() => setActiveItem('Test Item 3')}
/>
<Menu.Menu position = 'right'>
<Responsive as ={Menu.Item} minWidth={790}
name = "Sign Out"
onClick={() => setShowModal(true)}
/>
</Menu.Menu>
<Responsive as ={Menu.Menu} maxWidth={789} position='right'>
<Dropdown
item
icon ='bars'
>
<Dropdown.Menu>
<Dropdown.Item text='Mobile/Tablet Item 1'/>
<Dropdown.Item text='Mobile/Tablet Item 2'/>
<Dropdown.Item text='Mobile/Tablet Item 3'/>
<Dropdown.Item text='Sign Out'/>
</Dropdown.Menu>
</Dropdown>
</Responsive>
</Menu>
</div>
)
}
export default withRouter(NavMenu);