创建汉堡菜单 - 显示汉堡菜单的第二栏并正确显示链接

时间:2021-07-23 13:06:20

标签: html css responsive hamburger-menu

我创建了一个带有汉堡菜单的网站(响应式) 问题是我的汉堡菜单的第二个栏和其中显示的链接没有为栏显示,对于链接,它们没有正确显示

当然,我制作这个菜单是为了让网站 100% 响应

所以我想知道是否有人有解释?因为我个人不知道它来自哪里,所以我相应地设计了该站点以显示所有内容,即使调试也不明白

$('.m-nav-toggle').click(function(e) {
    e.preventDefault();
    $('.m-right').toggleClass('is-open');
    $('m-nav-toggle').toggleClass('is-open');
})
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,900;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@900&display=swap');

.menu {
    background: #757de8;
    width: 100%;
    height: 66px;
    line-height: 66px;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
}

.m-left {
    float: left;
}

.logo {
    margin: 0;
    padding: 0;
    width: 250px;
    height: 45px;
    background: transparent;
}

.m-right {
    float: right;
}


.m-links {
    text-decoration: none;
    color: #fff;
    text-transform: uppercase;
    font-weight: 700;
    padding: 0;
    margin: 0 15px;
    font-family: 'Lato', sans-serif;
    transition: all 0.3s ease-in-out;
    border-bottom: 2px solid transparent;
    padding-bottom: 3px;
}

.m-links:hover {
    border-color: #fff;
}

.m-links i {
    margin-right: 5px;
}


.m-nav-toggle {
    width: 40px;
    height: 66px;
    display: none;
    align-items: center;
    float: right;
    cursor: pointer;
}

span.m-nav-toggle-icon,
span.m-toggle-icon:before,
span.m-toggle-icon:after {
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background: #fff;
    position: relative;
    transition: all 0.3s ease-in-out;
}

span.m-toggle-icon:before {
    top: 12px;
}

span.m-toggle-icon:after {
    top: -14px;
}

.m-right.is-open {
    transform: translateX(0);
}

.m-nav-toggle.is-open span.m-toggle-icon {
    background: transparent;

}

.m-nav-toggle.is-open span.m-toggle-icon:before,
.m-nav-toggle.is-open span.m-toggle-icon:after {
    transform-origin: center;
    transform: rotate(45deg);
    top: 0;
}

@media only screen and (max-width: 950px) {
    .m-right {
        position: absolute;
        top: 66px;
        right: 0;
        width: 200px;
        height: 100%;
        background: #757de8;
        transform: translateX(100%);
        transition: all 0.3s ease-in-out;
    }

    .m-links {
        display: block;
        text-align: center;
        padding: 0;
        margin: 0 20px;
        height: 55px;
    }

    .m-nav-toggle.is-open span.m-toggle-icon:before {
        transform: rotate(-45deg);
    }

    .m-nav-toggle {
        display: flex;
    }

}

.m-toggle-icon {
    width: 100%;
}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="normalize.css">
    <link rel="stylesheet" href="header.css">
    <title>Header Template</title>

</head>

<body>

    <header role="header">
        <nav class="menu" role="navigation">
            <div class="inner">
                <img class="logo" src="img/logo.svg">
                <div class="m-left">
                </div>

                <div class="m-right">
                    <a href="" class="m-links"><i class="fas fa-home"></i> Home</a>
                    <a href="" class="m-links"><i class="fas fa-book"></i> Documentation</a>
                    <a href="" class="m-links"><i class="fas fa-comments"></i> Feedback</a>
                    <a href="" class="m-links"><i class="fas fa-handshake"></i> Partners</a>
                    <a href="" class="m-links"><i class="fas fa-envelope"></i> Contact</a>
                </div>
                <div class="m-nav-toggle">
                    <span class="m-toggle-icon"></span>
                </div>
            </div>
        </nav>
    </header>


</body>
<script src="https://kit.fontawesome.com/8b1b202200.js" crossorigin="anonymous"></script>
<script src="app.js" charset="utf-8"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"
    integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ=="
    crossorigin="anonymous" referrerpolicy="no-referrer"></script>

</html>

对于 normalize.css

    html,
body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

.inner {
    width: 80%;
    margin: auto;
}

1 个答案:

答案 0 :(得分:0)

编辑错字,它会起作用。 Suc6 与网站。

span.m-toggle-icon,
span.m-toggle-icon:before,
span.m-toggle-icon:after {
   ...
}