Bootstrap - 菜单不能正常工作 [英] Bootstrap - Menu doesn't work well

查看:23
本文介绍了Bootstrap - 菜单不能正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在实现一个基于 css 形状的引导菜单,但我在显示子菜单时遇到了问题,我认为这是因为我在形状 div 中有一个固定的 div.

.menu {宽度:100%;高度:40px;背景颜色:蓝色;-webkit-clip-path: 多边形(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);剪辑路径:多边形(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);位置:相对;}.menu ul li {字体系列:'Seravek';字体大小:14px;文本转换:大写;}.menu:before {内容: '';宽度:99.5%;高度:38px;-webkit-clip-path: 多边形(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);剪辑路径:多边形(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);背景:灰色;显示:块;位置:绝对;顶部:2px;左:2px;右:2px;}.navbar-default .navbar-collapse, .navbar-default .navbar-form {高度:40px!重要;}.navbar-default .navbar-collapse #menu-menuprincipal, .navbar-default .navbar-form #menu-menuprincipal {高度:40px;}.navbar-default .navbar-collapse #menu-menuprincipal li, .navbar-default .navbar-form #menu-menuprincipal li {高度:40px;}.navbar-default .navbar-collapse #menu-menuprincipal li a, .navbar-default .navbar-form #menu-menuprincipal li a {填充顶部:0;填充底部:0;行高:40px;颜色:黑色;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz"crossEuK6ys><nav class="navbar navbar-default"><div class="container-fluid no-padding"><div class="row no-margin"><div class="col-xs-4 col-sm-4 col-md-3 logo"><div class="navbar-header"><a class="navbar-brand" href="/site/"><img alt="site" src="<?php bloginfo('template_url')?>/images/logo.png"></a>

<div class="col-xs-4 col-sm-4 col-md-9 no-padding"><div class="menu-operations"><div class="语言">

<div class="social">

<div class="col-xs-4 col-sm-4 col-md-9 no-padding"><div class="navbar-header logo-vertical"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="true"><span class="sr-only">切换导航</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>

<div class="col-xs-12 col-sm-12 col-md-9 no-padding"><div class="菜单"><div id="bs-example-navbar-collapse-1" class="collapse navbar-collapse"><ul id="menu-menuprincipal" class="nav navbar-nav navbar-right"><li id="menu-item-39" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-39"><a title="Empresa" href="">Empresa</a></li><li id="menu-item-37" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-37 dropdown"><a title="Produção" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Produção <span class="caret"></span></a><ul role="menu" class="dropdown-menu"><li id="menu-item-38" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-18 current_page_item menu-item-38 active"><a title="Produção" href="">Produção</a></li><li id="menu-item-36" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36"><a title="Equipamentos" href="">Equipamentos</a></li><li id="menu-item-33" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33"><a title="Mercados" href="">Mercados</a></li><li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-30 dropdown"><a title="Qualidade e Ambiente" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Qualidade e Ambiente <span class="caret"><;/span></a><ul role="menu" class="dropdown-menu"><li id="menu-item-32" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32"><a title="Qualidade" href="">Qualidade</a></li><li id="menu-item-31" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31"><a title="Ambiente" href="">Ambiente</a></li><li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29"><a title="Notícias" href="">Notícias</a></li><li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28"><a title="Contactos" href="">联系人</a></li>

</nav>

我将 wordpress 与 wp_bootstrap_navwalker 一起使用,代码是菜单类中的链接:

解决方案

试试这个:

'基本的','菜单' =>'','容器' =>'导航','container_class' =>'折叠导航栏折叠','container_id' =>'bs-example-navbar-collapse-1','menu_class' =>'nav navbar-nav navbar-right','menu_id' =>'导航','回声' =>真的,'fallback_cb' =>'wp_bootstrap_navwalker::fallback','步行者' =>新的 wp_bootstrap_navwalker,'之前' =>'','之后' =>'','link_before' =>'','link_after' =>'','items_wrap' =>'<ul id="%1$s" class="%2$s">%3$s</ul>','深度' =>0,));} 别的 {wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => '' ) );}?>

我只是根据您的数据调整我的设置.通常,您需要定义 items_wrap 以获得所需的结果.

并且还将 container_id (wp_bootstrap_navwalker) 更改为更自然的内容.

同样从 SEO 方面来看,如果您遵循 HTML5 规则,请使用 <nav> 标签.也遵循 Bootstrap 规则

I'm implementing a bootstrap menu based on css shapes and i'm having problems to display sub-menus i think it is because i have a fixed div in shape div.

.menu {
  width: 100%;
  height: 40px;
  background-color: blue;
  -webkit-clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
  clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
  position: relative;
}
.menu ul li {
  font-family: 'Seravek';
  font-size: 14px;
  text-transform: uppercase;
}

.menu:before {
  content: '';
  width: 99.5%;
  height: 38px;
  -webkit-clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
  clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 100%);
  background: grey;
  display: block;
  position: absolute;
  top: 2px;
  left: 2px;
  right: 2px;
}

.navbar-default .navbar-collapse, .navbar-default .navbar-form {
  height: 40px !important;
}
.navbar-default .navbar-collapse #menu-menuprincipal, .navbar-default .navbar-form #menu-menuprincipal {
  height: 40px;
}
.navbar-default .navbar-collapse #menu-menuprincipal li, .navbar-default .navbar-form #menu-menuprincipal li {
  height: 40px;
}
.navbar-default .navbar-collapse #menu-menuprincipal li a, .navbar-default .navbar-form #menu-menuprincipal li a {
  padding-top: 0;
  padding-bottom: 0;
  line-height: 40px;
  color: black;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<nav class="navbar navbar-default">
  <div class="container-fluid no-padding">
    <div class="row no-margin">
      <div class="col-xs-4 col-sm-4 col-md-3 logo">
        <div class="navbar-header">
          <a class="navbar-brand" href="/site/">
           <img alt="site" src="<?php bloginfo('template_url')?>/images/logo.png">
                  </a>
        </div>
      </div>
      <div class="col-xs-4 col-sm-4 col-md-9 no-padding">
        <div class="menu-operations">
          <div class="languages">

          </div>
          <div class="social">

          </div>
        </div>
      </div>
      <div class="col-xs-4 col-sm-4 col-md-9 no-padding">
        <div class="navbar-header logo-vertical">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="true">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                  </button>
        </div>
      </div>
      <div class="col-xs-12 col-sm-12 col-md-9 no-padding">
        <div class="menu">
          <div id="bs-example-navbar-collapse-1" class="collapse navbar-collapse">
            <ul id="menu-menuprincipal" class="nav navbar-nav navbar-right">
              <li id="menu-item-39" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-39"><a title="Empresa" href="">Empresa</a></li>
              <li id="menu-item-37" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-37 dropdown"><a title="Produção" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Produção <span class="caret"></span></a>
                <ul role="menu" class=" dropdown-menu">
                  <li id="menu-item-38" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-18 current_page_item menu-item-38 active"><a title="Produção" href="">Produção</a></li>
                  <li id="menu-item-36" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-36"><a title="Equipamentos" href="">Equipamentos</a></li>
                </ul>
              </li>
              <li id="menu-item-33" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-33"><a title="Mercados" href="">Mercados</a></li>
              <li id="menu-item-30" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-30 dropdown"><a title="Qualidade e Ambiente" href="#" data-toggle="dropdown" class="dropdown-toggle" aria-haspopup="true">Qualidade e Ambiente <span class="caret"></span></a>
                <ul role="menu" class=" dropdown-menu">
                  <li id="menu-item-32" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-32"><a title="Qualidade" href="">Qualidade</a></li>
                  <li id="menu-item-31" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31"><a title="Ambiente" href="">Ambiente</a></li>
                </ul>
              </li>
              <li id="menu-item-29" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29"><a title="Notícias" href="">Notícias</a></li>
              <li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28"><a title="Contactos" href="">Contactos</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
</nav>

I'm using wordpress with wp_bootstrap_navwalker and the code is link thi inside menu class:

<div class="menu">
  <?php
    wp_nav_menu( array(
        'menu'              => 'menuPrincipal',
        'theme_location'    => 'primary',
        'depth'             => 2,
        'container'         => 'div',
        'container_class'   => 'collapse navbar-collapse',
        'container_id'      => 'bs-example-navbar-collapse-1',
        'menu_class'        => 'nav navbar-nav navbar-right',
        'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
        'walker'            => new wp_bootstrap_navwalker())
    );
  ?>
</div>

解决方案

Try this out:

<?php
    if ( has_nav_menu( 'primary' ) ) {
        wp_nav_menu(
        array(
                'theme_location'  => 'primary',
                'menu'            => '',
                'container'       => 'nav',
                'container_class' => 'collapse navbar-collapse',
                'container_id'    => 'bs-example-navbar-collapse-1',
                'menu_class'      => 'nav navbar-nav navbar-right',
                'menu_id'         => 'navigation',
                'echo'            => true,
                 'fallback_cb'       => 'wp_bootstrap_navwalker::fallback',
                 'walker'            => new wp_bootstrap_navwalker,
                'before'          => '',
                'after'           => '',
                'link_before'     => '',
                'link_after'      => '',
                'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
                'depth'           => 0,
            )
        );
    } else {
        wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => '' ) );
    }
?>

I just adapt my setup by your data. Generaly, you need to define items_wrap to get results you need.

And also change container_id (wp_bootstrap_navwalker) to something more natural.

Also from SEO side if you follow HTML5 rules, use <nav> tag. That also follow Bootstrap rules

这篇关于Bootstrap - 菜单不能正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
前端开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆