Как отобразить элементы навигации Bootstrap под моим заголовком по горизонтали в мобильном представлении? - PullRequest
0 голосов
/ 08 ноября 2019

на рабочем столе, мне нравится, как выглядит панель навигации, но при изменении ее размера до размера мобильного устройства она перемещается к размеру / под заголовком по вертикали, но мне бы хотелось, чтобы она отображалась горизонтально.

У меня естьпопытался отобразить inline, который не работал.

Я знаю, как использовать медиа-запросы, но мне просто нужна помощь, чтобы отображать каждый элемент навигации рядом друг с другом под заголовком.

document.body.classList.add('fade');

document.addEventListener("DOMContentLoaded", function(e) {
  document.body.classList.remove('fade');
});
body {
  opacity: 1;
  transition: 0.7s opacity;
}

body.fade {
  opacity: 0;
  transition: none;
}

.header {
  padding-left: 50px;
}

#nav {
  padding-right: 50px;
}

.nav {
  transition: linear 0.4s;
}

.nav:hover {
  color: #5a5f61;
  text-decoration: underline;
}

.mt-5 {
  margin-top: 5% !important;
}

.mt-6 {
  margin-top: 2.5% !important;
}

.mt-7 {
  margin-top: 2.5% !important;
}

.bgcolor {
  background-color: lemonchiffon;
}

@media only screen and (min-device-width: 320px) and (max-device-width: 486px) {
  .mt-5 {
    margin-top: 10% !important;
  }
  .mt-6 {
    margin-top: 2.5% !important;
  }
  .mt-7 {
    margin-top: 2.5% !important;
  }
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.jss"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<!-- Nav Bar -->
<nav class="navbar navbar-expand-sm bg-dark container-fluid" id="nav">
  <h2 class="header text-light"> Main Brand Heading </h2>
  <ul class="navbar-nav ml-auto">
    <li class="nav-item">
      <a class="nav-link nav font-weight-bold text-light" href="#">Portfolio</a>
    </li>
    <li class="nav-item">
      <a class="nav-link nav font-weight-bold text-light" href="about.html">About</a>
    </li>
    <li class="nav-item">
      <a class="nav-link nav font-weight-bold text-light" href="contact.php">Contact</a>
    </li>
  </ul>
</nav>
<!-- END Nav bar -->
<div class="jumbotron jumbotron-fluid mt-5 bg-dark text-light">
  <div class="container">
    <h1 class="display-4">Fluid jumbotron</h1>
    <p class="lead">This is a modified jumbotron that occupies the entire horizontal space of its parent.</p>
  </div>
</div>
<div class="jumbotron jumbotron-fluid mt-6 bg-dark text-light">
  <div class="container">
    <h1 class="display-4">Fluid jumbotron</h1>
    <p class="lead">This is a modified jumbotron that occupies the entire horizontal space of its parent.</p>
  </div>
</div>
<div class="jumbotron jumbotron-fluid mt-7 bg-dark text-light">
  <div class="container">
    <h1 class="display-4">Fluid jumbotron</h1>
    <p class="lead">This is a modified jumbotron that occupies the entire horizontal space of its parent.</p>
  </div>
</div>

1 Ответ

4 голосов
/ 08 ноября 2019

Вы можете добавить медиа-запрос для изменения свойства flex-direction, а затем настроить поля и отступы для лучшего результата. Например:

РЕДАКТИРОВАТЬ: Я добавил еще одну строку, чтобы заставить элементы навигации по-прежнему в flex-direction: row.

body {
    opacity: 1;
    transition: 0.7s opacity;
}

body.fade {
    opacity: 0;
    transition: none;
}

.header {
    padding-left: 50px;
}

#nav {
    padding-right: 50px;
}

.nav {
    transition: linear 0.4s;
}

.nav:hover {
    color: #5a5f61;
    text-decoration: underline;
}

.mt-5 {
    margin-top: 5% !important;
}

.mt-6 {
    margin-top: 2.5% !important;
}

.mt-7 {
    margin-top: 2.5% !important;
}

.bgcolor {
    background-color: lemonchiffon;
}

@media only screen and (min-device-width : 320px) and (max-device-width : 486px) {
    .mt-5 {
        margin-top: 10% !important;
    }

    .mt-6 {
        margin-top: 2.5% !important;
    }

    .mt-7 {
        margin-top: 2.5% !important;
    }
}

@media only screen and (max-width : 786px) {
    #nav {
        flex-direction: column;
        justify-content: center;
        padding-right: 0px;
    }

    .header {
        padding-left: 0px;

    }

    .navbar-nav.ml-auto {
        margin-left: 0 !important;
    }

    ul {
        flex-direction: row !important;
    }
  
    ul li a  {
        padding-right: .5rem !important;
        padding-left: .5rem !important;
    }
}
 <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

    <!-- Main CSS -->
    <link rel="stylesheet" type="text/css" href="css/styles.css">
    <title>Hello, world!</title>
  </head>
  <body class="bgcolor">  
      <script>
          document.body.classList.add('fade');
        </script>
    <!-- Nav Bar -->
      <nav class="navbar navbar-expand-sm bg-dark container-fluid" id="nav">
          <h2 class="header text-light"> Main Brand Heading </h2>
          <ul class="navbar-nav ml-auto">
              <li class="nav-item">
                <a class="nav-link nav font-weight-bold text-light" href="#">Portfolio</a>
              </li>
              <li class="nav-item">
                <a class="nav-link nav font-weight-bold text-light" href="about.html">About</a>
              </li>
              <li class="nav-item">
                 <a class="nav-link nav font-weight-bold text-light" href="contact.php">Contact</a>
              </li>
            </ul>
      </nav>
      <!-- END Nav bar -->
      <div class="jumbotron jumbotron-fluid mt-5 bg-dark text-light">
          <div class="container">
            <h1 class="display-4">Fluid jumbotron</h1>
            <p class="lead">This is a modified jumbotron that occupies the entire horizontal space of its parent.</p>
          </div>
        </div>
      <div class="jumbotron jumbotron-fluid mt-6 bg-dark text-light">
          <div class="container">
            <h1 class="display-4">Fluid jumbotron</h1>
            <p class="lead">This is a modified jumbotron that occupies the entire horizontal space of its parent.</p>
          </div>
        </div>
        <div class="jumbotron jumbotron-fluid mt-7 bg-dark text-light">
            <div class="container">
              <h1 class="display-4">Fluid jumbotron</h1>
              <p class="lead">This is a modified jumbotron that occupies the entire horizontal space of its parent.</p>
            </div>
          </div>
        <script>
            document.addEventListener("DOMContentLoaded", function(e) {
              document.body.classList.remove('fade');
            });
          </script>
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  </body>
...