【问题标题】:In Bootstrap how can I edit CSS only for the mobile menu?在 Bootstrap 中,如何仅为移动菜单编辑 CSS?
【发布时间】:2020-08-07 14:35:55
【问题描述】:

所以我只想为移动(汉堡)菜单应用一些 CSS。我想你可以为它改变的宽度做一个@media 屏幕和 (max-width: 600px) 样式,但这看起来很乱。

是否有仅与移动菜单相关的样式?这样我可以做类似的事情:

.mobile-menu .nav-link {
  colour: red;
  padding: 40px;
}

仅将移动菜单设为红色并填充为 40px,而桌面菜单将保持正常。如果没有设置样式,创建仅影响移动菜单项的 CSS 的最佳方法是什么?

为了帮助,这里是html代码:

<nav class="navbar navbar-expand-md">
  <a class="navbar-brand" href="#">
    <img class="img-fluid d-md-none" src="images/banner_logo_small.png">
    <img class="img-fluid d-none d-md-block" src="images/banner_logo.png">
  </a>
  <button class="navbar-toggler navbar-dark" type="button" data-toggle="collapse" data-target="#main-navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="main-navigation">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">HOME</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">COMMUNITY SUPPORT</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">CONTACT</a>
      </li>
    </ul>
  </div>
</nav>

这是 .css 中的代码:

.navbar {
  background:#FF8200;
  padding: 0;
}
.nav-link,
.navbar-brand {
  color: #fff;
  cursor: pointer;
  padding: 0;
}
.nav-link {
  margin-right: 1em !important;
  font-weight: bold;
}
.nav-link:hover {
  color: #3D3935;
}
.navbar-collapse {
  justify-content: flex-end;
}
.d-md-none .navbar-collapse {
  padding: 200px;
  color: red;
}

因此,目前的目标是仅让移动菜单中的项目具有 200 像素的内边距并变为红色。

这是一个示例:https://www.codeply.com/p/uVOV67zz6E 可以玩,目的是让移动设备中的菜单项变为红色,而在桌面视图中保持白色。

问题当然是在 Bootstrap 中它在移动和桌面菜单中的相同项目,bootstrap 只是根据页面宽度更改 css。

【问题讨论】:

    标签: css mobile bootstrap-4


    【解决方案1】:

    试试这样的:

    (我已将background-color: green; 添加到导航栏,并将padding: 40px 添加到导航栏切换器图标。)

    (您可能想做的其他修改的好资源:Bootstrap 4 Change Hamburger Toggler Color & https://getbootstrap.com/docs/4.0/components/navbar/#color-schemes

    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <link href="style.css" rel="stylesheet" type="text/css" />
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
      <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    </head>
    
    <body>
      <nav class="navbar navbar-light" style="background-color: green;">
        <a class="navbar-brand" href="#">Navbar</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon" style="padding: 40px;"></span>
      </button>
    
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
              <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown
            </a>
              <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                <a class="dropdown-item" href="#">Action</a>
                <a class="dropdown-item" href="#">Another action</a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="#">Something else here</a>
              </div>
            </li>
            <li class="nav-item">
              <a class="nav-link disabled" href="#">Disabled</a>
            </li>
          </ul>
          <form class="form-inline my-2 my-lg-0">
            <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
          </form>
        </div>
      </nav>
      <script src="script.js"></script>
    </body>
    
    </html>

    【讨论】:

    • 我现在已将所有代码添加到原始帖子中。你在这里链接的问题我已经看到了,但它的目的是编辑图标,而不是实际的菜单项,我不知道如何将该方法用于实际项目。
    • 我修改了我的答案。我正在做各种测试,但我上面生成的测试似乎按预期工作。
    • 但是现在你失去了非移动菜单。
    • 如果你去codeply.com/p?starter=Bootstrap%204把html和css代码复制到第一个和最后一个窗口中进行测试,那么你可以尝试修改css并拥有它,这样移动端的视图就会分散开来从桌面更改文本颜色。
    • 你说得对,我的示例代码坏了。响应性消失了,但是代码本身仍然与您的问题相关。以下是正在操作的导航栏示例:ivoryvoluminousenvironments--five-nine.repl.co
    猜你喜欢
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 2021-06-23
    • 2017-05-02
    相关资源
    最近更新 更多