使用CSS网格的可折叠导航菜单

时间:2019-03-09 02:43:46

标签: css twitter-bootstrap navigation navbar css-grid

我已经在Bootstrap-4中创建了一个导航栏,现在我正在尝试使用CSS Grid重新创建它。我设法使导航栏具有响应能力,但我不知道如何使它在移动设备上折叠。 这是使用CSS网格的带有导航栏的笔:Navbar with CSS Grid 这是使用Bootstrap CDN的导航栏:Navbar with Bootstrap。我尝试将navbar-expand-sm和navbar-toggler添加到CSS网格中,但这会破坏布局。任何帮助将不胜感激。

    <section class="wrapper">
<!-- navigation -->
<nav class="main-nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Gallery</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</section>


/* CSS Variables  */
:root {
--primary: #ddd;
--dark: #333;
--light: #fff;
--shadow: 0 1px 5px rgba(104, 104, 104, 0.8);
}
html {
    box-sizing: border-box;
    font-family: Arial, Helvetica;
    color: var(--dark);
}
body {
    background: #ccc;
    margin: 1.9rem .5rem;
    line-height: 1.4;
}
.wrapper {
    display: grid;
    grid-gap: 5px;
}
/* Navigation */
.main-nav ul {
    display: grid;
    grid-gap: 2px;
    padding: 0;
    list-style: none;
    grid-template-columns: repeat(auto-fit, minmax(1em, 1fr));
}
.main-nav a {
    background: var(--primary);
    display: block;
    text-decoration: none;
    padding: 1rem 0.4rem;
    text-align: center;
    color: var(--dark);
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: bold;
    box-shadow: var(--shadow);
}
.main-nav a:hover {
    background: var(--dark);
    color: var(--light);
}

/* Media queries  */    
@media (max-width:768px) {
.main-nav a {
    font-weight: 500;
    font-size: .9rem;
}
}

@media(max-width:734px) {
.main-nav ul {
    grid-template-columns: 1fr;
}
.main-nav a {
    font-weight: 600;
}
}

0 个答案:

没有答案