【问题标题】:WordPress Bootstrap5 Navbar is not aligned with other col divWordPress Bootstrap5 Navbar 未与其他 col div 对齐
【发布时间】:2021-07-14 08:25:45
【问题描述】:

我在 Wordpress 中实现了 Bootstrap 5 的导航栏。当屏幕尺寸较小时,按钮出现并与 H2 navbar-brand 在水平轴上对齐。但是,当屏幕变大且菜单展开时,项目会显示为比 navbar-brand 更“低”。

我不知道如何在不破坏其他内容的情况下让扩展菜单与 navbar-brand 保持一致。将不胜感激。

Header.php HTML

<nav class="navbar navbar-expand-lg navbar-light"> 
    <div class="container-fluid"> 
        <div class="row d-flex align-item-center justify-content-between">
            <div class="col ">
                <div class="dropdown-container">

                    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> 
                    <span class="navbar-toggler-icon"></span> 
                    </button> 
                    <div class="collapse navbar-collapse" id="navbarSupportedContent"> 
                      <div class="site-menu dropdown-primary">
                        <ul id="primary-menu" class="navbar-nav">
                            <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-14 current_page_item menu-item-16"><a href="https://example.com/" aria-current="page">Test</a></li>
                            <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18"><a href="https://example.com/checkout/">Checkout</a></li>
                            <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20"><a href="https://example.com/sample-page/">Sample</a></li>
                            <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21"><a href="https://example.com/shop/">Shop</a></li>
                            <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26"><a href="https://example.com/aboot-us/">Aboot Us</a></li>
                        </ul>
                      </div> 
                    <!-- other nav ul lists --> 
                    </div> 
                </div>
            </div>
            <div class="col">
                <a class="navbar-brand" href="https://www.example.com"><h2>Online Shop</h2></a>
            </div>
        </div>
    </div> 
</nav> 

CSS

header .navbar-brand h2 {
  color: white;
  padding: 1rem 0;
}

#primary-menu li a {
  display: block;
  padding: 0.25rem 1rem;
  color: rgb(176, 252, 153);
  font-size: 1rem;
  font-weight: bold;
  white-space: nowrap;
}

.dropdown-container {
  position: relative;
}

.dropdown-primary {
  position: absolute;
  top: 100%; /* Bottom of button */
  left: 0;
  margin-right: -100px; 
}

【问题讨论】:

  • 您可以编辑您的代码以将 wp 函数替换为 WordPress 插入的代码吗?
  • 用 HTML @RichDeBourke 替换 WP 代码

标签: html css wordpress navbar bootstrap-5


【解决方案1】:

您的导航栏与 Bootstrap-5 标准完全不同。您的导航栏中有一行和一些列,这并不是真正需要的。导航栏折叠功能可以更改较小屏幕的布局。你有一个课程,dropdown-container,,它把你的导航链接放在你的导航栏下面,所以我把它删除了。另外,你有一个我不确定的下拉容器 div,所以我删除了它。

Bootstrap的导航栏很强大,但是很容易坏掉,所以最好不要一次改太多。

使用您拥有的代码,当前页面没有任何指示。

更新在右侧(在汉堡按钮下方)有小屏幕菜单项

如果您希望小屏幕的菜单项位于屏幕右侧,您可以在每个项目中添加text-end。这将导致项目在折叠菜单的右侧排列,但不会影响更大显示的链接。

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.min.js"></script>

<style>
    header .navbar-brand h2 {
        color: white;
        padding: 1rem 0;
    }

    #primary-menu li a {
        display: block;
        padding: 0.25rem 1rem;
        color: rgb(176, 252, 153);
        font-size: 1rem;
        font-weight: bold;
        white-space: nowrap;
    }
    
    .navbar-brand {
        font-size: 2rem;
    }
</style>

<nav class="navbar navbar-expand-md navbar-light">
    <div class="container-fluid">
        <a class="navbar-brand" href="#">Online Shop</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul id="primary-menu" class="navbar-nav">
                <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-14 current_page_item menu-item-16 text-end"><a href="https://example.com/" aria-current="page">Test</a></li>
                <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18 text-end"><a href="https://example.com/checkout/">Checkout</a></li>
                <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20 text-end"><a href="https://example.com/sample-page/">Sample</a></li>
                <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21 text-end"><a href="https://example.com/shop/">Shop</a></li>
                <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26 text-end"><a href="https://example.com/aboot-us/">About Us</a></li>
            </ul>
            <!-- other nav ul lists -->
        </div>
    </div>
</nav>

【讨论】:

  • 感谢您抽出宝贵时间尝试并提供帮助。我实际上已经注意到 col 和 row 并不是真正需要的,但我将它留在那里以尝试使导航链接与在线商店保持一致。 Dropdown-container 和 dropdown-primary 用于定位下拉菜单,以便链接直接显示在按钮下方。我试图避免将 navbar-brand 堆叠在展开的菜单顶部,并且当屏幕较小时,我希望菜单直接出现在汉堡按钮下方。
  • 我已更新我的答案,将菜单项移至右侧。如果这不是您想要的,也许您可​​以在问题中添加一张图片,显示您对小屏幕的需求您对大屏幕的需求。
  • 这让我到达了我需要的地方。非常感谢! @RichDeBourke
  • 很高兴我们得到了您需要的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 2017-01-28
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多