微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Understrap 主题子菜单看起来很奇怪

如何解决Understrap 主题子菜单看起来很奇怪

我在我的 wordpress 网站上使用 Understrap 主题并尝试实现一个菜单 (此处为 www.irricad.com,“支持菜单中的“视频”条目)。

如您所见,子菜单位于主菜单的顶部,遮挡了某些条目并阻止了正确导航。我希望它像“适当的”子菜单一样显示在右侧(最好有指示子菜单的小箭头)。

菜单与主菜单项具有相同的类,因此我不知道如何使其显示不同。我需要一些额外的 CSS 吗?我在后端的菜单配置中遗漏了什么吗?如果没有明确的类,是什么让 wordpress 知道这是一个菜单,而不是嵌套级别?

解决方法

我想通了。我将主题标题菜单深度更改为 3:

<!-- The WordPress Menu goes here -->
<?php wp_nav_menu(
    array(
      'theme_location'  => 'primary','container'       => 'div','container_class' => 'collapse navbar-collapse','container_id'    => 'navbarNavDropdown','menu_class'      => 'navbar-nav ml-auto','fallback_cb'     => 'Understrap_WP_Bootstrap_Navwalker::fallback','menu_id'         => 'main-menu','depth'           => 3,'walker'          => new Understrap_WP_Bootstrap_Navwalker(),)
  ); ?>

我将我的 navwalker.php 更改为这个(为有孩子的孩子添加切换样式):

// If item has_children add atts to <a>.
if (isset($args - > has_children) && $args - > has_children && 0 === $depth && $args - > depth !== 1) {
  $atts['href'] = '#';
  $atts['data-toggle'] = 'dropdown';
  $atts['aria-haspopup'] = 'true';
  $atts['aria-expanded'] = 'false';
  $atts['class'] = 'dropdown-toggle nav-link';
  $atts['id'] = 'menu-item-dropdown-'.$item - > ID;
} else {
  $atts['href'] = !empty($item - > url) ? $item - > url : '#';
  // Items in dropdowns use .dropdown-item instead of .nav-link.
  if ($depth > 0) {
    if ($args - > has_children) {
      $atts['class'] = 'dropdown-toggle';
    } else {
      $atts['class'] = 'dropdown-item';
    }
  } else {
    $atts['class'] = 'nav-link';
  }
}

最后添加了这个样式来定位子菜单:

    .navbar-expand-md .navbar-nav ul.dropdown-menu> li > ul.dropdown-menu {
        position: absolute;
        top:0px;
        border-radius: 0;
        left: 100%;
        padding-top:0;
        padding-bottom:0;
        min-width: 150px;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。