web-dev-qa-db-fra.com

Diviseur de navigation Bootstrap 4

J'ai essayé de combiner deux ul dans une barre de navigation réactive avec un séparateur, sans déranger avec les secondes ul css .J'ai essayé avec mediaqueries mais je n'ai pas réussi à le faire fonctionner ..__ Pour que ce soit plus clair, il faut que le premier ul qui s’est effondré soit centré, puis muni d’un diviseur, puis de l'autre ul centré au-dessous.

HTML:

<nav class="navbar navbar-expand-md navbar-dark">
    <div class="container">
      <a href="#" class="navbar-brand"><img src="img/logo.png" alt="Akrotopi Apartments"></a>
      <button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#main-nav">
        <span class="menu-icon-bar"></span>
        <span class="menu-icon-bar"></span>
        <span class="menu-icon-bar"></span>
      </button>
      <div id="main-nav" class="collapse navbar-collapse">
        <ul class="navbar-nav ml-auto">
          <li><a href="#" id="home" class="nav-item nav-link active">Αρχική</a></li>
          <li><a href="#" class="nav-item nav-link">Σχετικά</a></li>
          <li><a href="#" class="nav-item nav-link">Δωμάτια</a></li>
          <li><a href="#" class="nav-item nav-link">Επικοινωνία</a></li>
          <div class="dropdown-divider" ></div>
          <div id="lang">
          <ul>
            <li><a href="index.html" id="active">GR</a></li>
            <li><a href="lang.en.html">EN</a></li>
            </ul>
        </div>
        </ul>
      </div>

    </div>
  </nav>

CSS:

@media screen and (max-width: 768px) {
      .navbar-brand {
        margin-left: 20px;
       }

      .navbar-nav {
        text-align: center;
        padding: 0 20px;
        background-color: #f8f9fa00;
       }

     .navbar.fixed-top .navbar-nav {
       background: transparent;
       }
       }

      #lang ul{
       position:absolute;
       top:15px;
       right:10px;
       list-style:none;
       padding:0;
       margin:0;
      }
      }

Des idées sur la façon de résoudre ce problème?

Je vous remercie !!

4
AthenaBK

La première chose à faire: la méthode actuelle d'imbrication des balises <ul> n'est pas valide, car <ul> ne peut avoir que des éléments <li> comme enfants immédiats. Vous devez donc soit envelopper le <ul> imbriqué dans un <li>, soit placer les deux <ul> au même niveau. Dans ce cas, je suggérerais d'aller avec ce dernier.

En outre, vous pouvez appliquer l'identifiant #lang directement à la balise <ul>, sans le div wrapper. Le diviseur pourrait être mis en forme avec une simple propriété supérieure de bordure appliquée sur des périphériques plus petits.

Cela dit, votre balisage et vos CSS pourraient ressembler à ce qui suit.

@media screen and (max-width: 768px) {
    .navbar-brand {
        margin-left: 20px;
    }

    .navbar-nav {
        text-align: center;
        padding: 0 20px;
        /*background-color: #f8f9fa00; invalid color value */
    }

    .navbar.fixed-top .navbar-nav {
        background: transparent;
    }

    #lang {
        border-top: 1px solid #f8f9fa;
    }
}

@media screen and (min-width: 767px) {
    #lang {
        position:absolute;
        top:15px;
        right:10px;
        list-style:none;
        padding:0;
        margin:0;
    }
}
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
    <div class="container">
        <a href="#" class="navbar-brand"><img src="img/logo.png" alt="Akrotopi Apartments"></a>
        
        <button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#main-nav">
            <span class="menu-icon-bar"></span>
            <span class="menu-icon-bar"></span>
            <span class="menu-icon-bar"></span>
        </button>

        <div id="main-nav" class="collapse navbar-collapse">
            <ul class="navbar-nav ml-auto">
                <li><a href="#" id="home" class="nav-item nav-link active">Αρχική</a></li>
                <li><a href="#" class="nav-item nav-link">Σχετικά</a></li>
                <li><a href="#" class="nav-item nav-link">Δωμάτια</a></li>
                <li><a href="#" class="nav-item nav-link">Επικοινωνία</a></li>
            </ul>

            <ul class="navbar-nav" id="lang">
                <li><a href="index.html" id="active">GR</a></li>
                <li><a href="lang.en.html">EN</a></li>
            </ul>
        </div>
    </div>
</nav>


<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>

0
dferenc