【问题标题】:How can I style the items in the hamburger menu in a Bootstrap navbar?如何在 Bootstrap 导航栏中设置汉堡菜单中的项目样式?
【发布时间】:2021-07-02 14:46:28
【问题描述】:

我使用 Bootstrap4 创建了一个响应式导航栏。 大屏幕时,有2个按钮。当屏幕很小时,会有一个汉堡菜单。

[在此处输入图像描述][1][在此处输入图像描述][2]

如何设置导航栏中的元素样式,以便它们在汉堡菜单中时看起来不再像按钮?

谢谢!

这是我的代码:

  <a class="navbar-brand" href="index.html">MyJobBoard</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
  <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
    <ul class="navbar-nav navbar-right ml-auto mt-2 mt-lg-0 float-right text-right">
      <li class="nav-item active">
        <a class="nav-link post-a-job-button pull-right">Create a profile</a>
      </li>
      <li class="nav-item">
        <button type="button" class="btn btn-light mr-3 pull-right">Sign In</button>
      </li>
      <li class="nav-item">
        <button type="button" class="btn btn-primary mr-3 pull-right">Post a Job</button>
      </li>
    </ul>
  </div>
</nav> ```

  [1]: https://i.stack.imgur.com/ujYIG.png
  [2]: https://i.stack.imgur.com/lE4ib.png

【问题讨论】:

  • 您的登录和发布工作导航项会为用户打开一个模式来执行任一任务,还是会将用户带到另一个页面?如果单击按钮执行某些操作(例如打开模式),那么按钮是正确的选择,但如果单击按钮将用户带到不同的页面,那么它们应该被构造为链接。您可以在链接上使用按钮样式。
  • 嗨@RichDeBourke,感谢您的回复。单击按钮,用户将看到一个表单。问题是汉堡菜单中的样式关闭了,我不知道如何使它看起来更好

标签: css bootstrap-4 responsive-design navbar hamburger-menu


【解决方案1】:

一种解决方案是将您的所有导航项构建为链接,以便在较小的屏幕上,您将拥有正常的 Bootstrap 下拉菜单,然后是适用于较大显示器的自定义按钮类。

如果您的登录表单和职位发布表单位于单独的页面上,那么您可以使用指向其他页面的直接链接,但如果您使用模式来显示表单,那么您需要使用 JavaScript 打开模态框。

我在下面的示例中禁用了发布工作按钮,因此您可以了解如何禁用按钮,以便未登录的人无法发布工作。

$('a[href$="#signInModal"]').on("click", function() {
    $("#signInModal").modal('show');
});

$('a[href$="#postJobModal"]').on("click", function() {
    $("#postJobModal").modal('show');
});
<link href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"></script>

<style>
    @media (min-width:768px) {
        .btn-md {
            display: inline-block;
            font-weight: 400;
            color: #212529;
            text-align: center;
            vertical-align: middle;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
            background-color: transparent;
            border: 1px solid transparent;
            padding: .375rem .75rem;
            font-size: 1rem;
            line-height: 1.5;
            border-radius: .25rem;
            transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
        }

        .btn-primary-md {
            color: #fff;
            background-color: #007bff;
            border-color: #007bff;
        }

        .navbar-light .navbar-nav .nav-link {
            color: #fff;
        }

        .navbar-light .navbar-nav .nav-link.disabled {
            color: rgba(255, 255, 255, 0.6);
        }

        .btn-md:not(:disabled):not(.disabled) {
            cursor: pointer;
        }
    }<nav class="navbar navbar-expand-md navbar-light bg-light">
    <!-- Container wrapper -->
    <div class="container-fluid">
        <!-- Navbar brand -->
        <a class="navbar-brand" href="index.html">MyJobBoard</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
            <ul class="navbar-nav navbar-right ml-auto mt-2 mt-lg-0 float-right text-right">
                <li class="nav-item active">
                    <a class="nav-link post-a-job-button mr-md-3" href="#">Create a profile</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link btn-md btn-primary-md mr-md-3 text-white-md" href="#signInModal" role="button" style="width: 6.125rem">Sign In</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link btn-md btn-primary-md mr-md-3 text-white-md disabled" href="#postJobModal" role="button" style="width: 6.125rem" tabindex="-1" aria-disabled="true">Post a Job</a>
                </li>
            </ul>
        </div>
    </div>
</nav>

<div class="modal fade" id="signInModal" tabindex="-1" aria-labelledby="signInModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="signInModalLabel">Sign In</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <p>Form for signing in (or registering) goes here.</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                <button type="button" class="btn btn-primary">Sign in</button>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="postJobModal" tabindex="-1" aria-labelledby="postJobModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="postJobModalLabel">Post a job</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <p>Form for posting a job</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                <button type="button" class="btn btn-primary">Post</button>
            </div>
        </div>
    </div>
</div>

</style>

<nav class="navbar navbar-expand-md navbar-light bg-light">
    <!-- Container wrapper -->
    <div class="container-fluid">
        <!-- Navbar brand -->
        <a class="navbar-brand" href="index.html">MyJobBoard</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
            <ul class="navbar-nav navbar-right ml-auto mt-2 mt-lg-0 float-right text-right">
                <li class="nav-item active">
                    <a class="nav-link post-a-job-button mr-md-3" href="#">Create a profile</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link btn-md btn-primary-md mr-md-3 text-white-md" href="#signInModal" role="button" style="width: 6.125rem">Sign In</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link btn-md btn-primary-md mr-md-3 text-white-md disabled" href="#postJobModal" role="button" style="width: 6.125rem" tabindex="-1" aria-disabled="true">Post a Job</a>
                </li>
            </ul>
        </div>
    </div>
</nav>

<div class="modal fade" id="signInModal" tabindex="-1" aria-labelledby="signInModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="signInModalLabel">Sign In</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <p>Form for signing in (or registering) goes here.</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                <button type="button" class="btn btn-primary">Sign in</button>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="postJobModal" tabindex="-1" aria-labelledby="postJobModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="postJobModalLabel">Post a job</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <p>Form for posting a job</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                <button type="button" class="btn btn-primary">Post</button>
            </div>
        </div>
    </div>
</div>

【讨论】:

  • 这很完美!正是我需要的。非常感谢!
  • 我很高兴它对你有用。如果我的回答满足您的问题,请检查接受图标(复选标记),以便其他人知道该问题已得到回答,如果答案是您需要的,最好单击问题旁边的向上箭头以表示它是有用的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多