【问题标题】:Bootstrap 4 Navigation DividerBootstrap 4 导航分隔线
【发布时间】:2018-01-23 22:10:22
【问题描述】:

我一直在尝试将两个 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;
      }
      }

关于如何解决它的任何想法?

谢谢!!

【问题讨论】:

    标签: html css navigation bootstrap-4 divider


    【解决方案1】:

    第一件事:当前嵌套&lt;ul&gt; tags 的方式无效,因为&lt;ul&gt; 只能将&lt;li&gt; 元素作为它们的直接子元素。因此,您要么必须将嵌套的 &lt;ul&gt; 包装到 &lt;li&gt; 中,要么将两个 &lt;ul&gt; 放在同一级别。在这种情况下,我建议选择后者。

    此外,您可以将#lang id 直接应用于&lt;ul&gt; 标记,而无需包装器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>

    【讨论】:

    • 我尝试将第二个 ul 的位置从绝对更改为继承,并且我还稍微更改了填充并且它起作用了。但我一定会试试这个版本,以防它更好。
    猜你喜欢
    • 2019-06-14
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多