В Bootstrap как изменить CSS только для мобильного меню? - PullRequest
0 голосов
/ 07 августа 2020

Итак, я хочу применить CSS только для мобильного (гамбургерного) меню. Я предполагаю, что вы могли бы сделать что-то вроде экрана @media и стиля (max-width: 600px) для ширины, где он изменяется, но это кажется беспорядочным.

Есть ли стиль, который относится только к мобильному меню? Таким образом я мог бы сделать что-то вроде:

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

, чтобы сделать только мобильное меню красным и дополнить его до 40 пикселей, а меню рабочего стола останется обычным. Если нет установленного стиля, как лучше всего создать 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 в зависимости от ширины страницы.

1 Ответ

0 голосов
/ 07 августа 2020

Попробуйте что-то вроде этого:

(Я добавил background-color: green; на панель навигации и добавил padding: 40px к значку navbar-togger-icon.)

(Хороший ресурс для другие модификации, которые вы, возможно, захотите сделать: Bootstrap 4 Изменить цвет переключателя гамбургеров & https://getbootstrap.com/docs/4.0/components/navbar/#color -схемы )

<!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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...