html - Bootstrap 4 导航分隔线

标签 html css navigation bootstrap-4 divider

我一直在尝试将两个 ul 组合到一个带有分隔符的响应式导航栏中,而不会弄乱秒 ul css。 我试过使用媒体查询,但没能成功。 为了更清楚,我需要第一个 ul 在它折叠时居中,然后有一个分隔线,然后让另一个 ul 在它下面居中。

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;
      }
      }

关于如何修复它有什么想法吗?

谢谢!!

最佳答案

首先:当前嵌套 <ul> tags 的方式无效,因为 <ul>只能有<li>元素作为他们的直接 child 。所以你要么必须包装嵌套的 <ul>进入<li> , 或者有两个 <ul>在同一水平上。在这种情况下,我建议选择后者。

此外,您可以应用 #lang id直接到<ul>标签,没有包装 div。分隔线可以用在较小设备上应用的简单边框顶部属性来塑造。

话虽如此,您的标记和 CSS 可能如下所示。

@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>

关于html - Bootstrap 4 导航分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48411650/

相关文章:

html - 当尺寸大于 1024 像素时如何更改背景(添加边框)

javascript - 为什么我的 JS 不能正确从表单中提取值?

android - 调用 Fragment 构造函数导致异常,kotlin?

javascript - jQuery - 如何根据具有类 "selected"的项目更改背景颜色

javascript - IE 中的嵌套跨度鼠标悬停问题

html - 在 HTML 中使用 SVG 绘制新月

Javascript - 切换内容功能只能使用一次

html - 对齐彼此相邻的输入文本字段

html - Bootstrap 4列垂直居中并保持相同高度

css - Logo 问题/挑战 - Bootstrap Navbar