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);