Responsive Bootstrap 4 выпадающие элементы navbar отображаются как nav-элементы - PullRequest
0 голосов
/ 24 ноября 2018

Привет и заранее спасибо за помощь.Вот ссылка на рассматриваемый сайт: caulfield.co / test / originals.html

Я пытаюсь создать отзывчивый navbar, в котором текущий dropdown-items выглядит какстандарт nav-items после развала.

См. это изображение:

Dropdown displaying correctly on desktop view

dropdown-items отображаются так, как и предполагалось на рабочем столе.Однако на мобильных устройствах отдельный выпадающий список не требуется.Вот как он отображается с Bootstrap 4 из коробки:

Minimized Mobile navbar with unnecessary dropdown

Кто-нибудь знает удобное или нестандартное решение для удаления dropdown один раз?navbar-collapse используется на мобильных устройствах и т. д., так что dropdown-items выглядит так же, как navbar-items?В идеале «More» nav-link будет display:none, а nav-items будет непрерывно переходить от «Контакта» к «Работам на дисплее».

HTML:

<nav id="navHome" class="navbar navbar-expand-lg navbar-light sticky-top">
  <div class="container-fluid max-width-940">
  <a class="navbar-brand" href="index.html">
    <img src="images/mb.svg" alt="Margaret Biggs" width="220px"/>
  </a>
  <button class="navbar-toggler togglerNoBorder" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse backgroundWhite" id="navbarNavDropdown">
    <ul class="navbar-nav ml-auto">
      <li class="nav-item active">
        <a class="nav-link" href="bio.html">Bio <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="originals.html">Originals</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="exhibition.html">Exhibition</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="prints.html">Prints</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="professionals.html">For Professionals</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="contact.html">Contact</a>
      </li>
      <li class="nav-item dropdown navDropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          More
        </a>
        <div class="dropdown-menu navDropdown" aria-labelledby="navbarDropdownMenuLink">
          <a class="dropdown-item" href="works-on-display.html">Works on Display</a>
          <a class="dropdown-item" href="poetry.html">Poetry</a>
          <a class="dropdown-item" href="commissions.html">Commissions</a>
          <a class="dropdown-item" href="blog.html">Blog</a>
        </div>
      </li>
    </ul>
  </div>
</div>
</nav>

CSS:

.navbar-right {
  float:right;
}

.togglerNoBorder{
  border: 0px solid transparent;
}

.nav940{
  max-width:940px;
  margin:0 auto;
}

#navHome {
  color:rgb(34, 34, 34);
  font-size:13px;
  font-weight:400;
  line-height:16px;
  text-transform:uppercase;
  background-color:white;
  height:60px;
  box-shadow: 0 0 18px -4px #000;
}

#navHome a{
  color:rgb(34, 34, 34);
}

#navHome a:hover{
  color:#165fa5;
}

.navDropdown {
  font-size:13px;
}

.navDropdown a:hover {
  background-color:white;
}

.backgroundWhite{
  background-color:white;
}

.nav-item{
  padding-left:10px;
}

.dropdown-item {
  padding-top:10px;
}

.navbar-brand {
  margin-bottom:3px;
}

.dropdown-menu {
  top:45px;
}

1 Ответ

0 голосов
/ 24 ноября 2018

Используйте запрос @media для мобильных устройств (<992px), чтобы показать <code>dropdown-menu как обычные навигационные ссылки ...

@media (max-width: 992px) {
    .dropdown-toggle {
        display: none;
    }

    .dropdown-menu {
        display: block;
        position: relative;
        border-width: 0;
        padding: 0;
        margin: 0;
    }

    .dropdown-item {
        padding: .5rem 0rem;
        color: rgba(0,0,0,.5);
    }
}

https://www.codeply.com/go/lAAQOwhAx0

...