Меню навигации начальной загрузки из двух частей с логотипом в центре

#html #css #wordpress #twitter-bootstrap #wp-nav-walker

#HTML #css #wordpress #twitter-bootstrap #wp-nav-walker

Вопрос:

Я создаю динамические ссылки WordPress на панели навигации с помощью nav_walker. Как я могу реализовать что-то подобное в WordPress nav_walker:

  ----------------------------- ----------- ------------------------------ 
 ---------------HOME--ABOUT---|-LOGO HERE-|---CONTACT--PROFILE----------- 
 ----------------------------- ----------- ------------------------------ 
  

Как я могу это сделать или что-то в этом роде, предоставьте мне jsfiddle, чтобы придумать это, пожалуйста.
Это две функции nav_walker для навигации влево и вправо? как я могу вставить название навигационной панели в центр? кто-нибудь может дать мне структуру. Спасибо.

мой код:

 <nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <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 class="navbar-brand navbar-center">

    </div>

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

Комментарии:

1. вы уже пробовали что-нибудь?

2. @Nikhil Nanjappa да, сэр. я попробовал два divs, но это не удалось. я сделал две навигации. это не подходит для того, что я хочу. : ( пожалуйста, помогите мне, сэр. спасибо за ваш ответ

3. Я предполагаю, что вы спрашиваете о том, как получить пункты меню из вашего меню WordPress и разделить их. Взгляните на это

4. у меня уже есть меню, сэр .. мне нужно только разделить их, как то, что я опубликовал. выравнивание, которое может автоматически разделить их на две части с логотипом в центре

5. «wp_nav_menu» отображает полное меню. Однако «wp_get_nav_menu_items» предоставляет вам фактические элементы из меню. Вы можете получить длину возвращаемого массива и разделить его пополам.

Ответ №1:

Это может быть удивительно просто, если у вас одинаковое количество элементов слева и справа. Просто создайте список, поместите логотип в середину и сделайте text-align: center . Смотрите здесь: https://jsfiddle.net/DTcHh/26132 /

Проблема начинается, когда левый и правый даже слегка неровные. Я предлагаю создать два списка, каждый для половины экрана. Они будут выровнены по центру и оставят место в центре для логотипа.

Проверьте это здесь: https://jsfiddle.net/DTcHh/26133 /

HTML:

 <div class="navbar navbar-default">
    <div class="logo-wrapper">
        <div class="logo"><img class="logo" src="http://www.hsdtaxlaw.com/wp-content/uploads/2016/05/logo_placeholder.png" alt=""></div>
    </div>
    <div class="half">      
        <ul class="left-navlist">
            <li>Home</li>
            <li>About</li>
        </ul>
    </div>
    <div class="half">      
        <ul class="right-navlist">
            <li>Contact</li>
            <li>Profile</li>
            <li>Maps</li>
        </ul>
    </div>
</div>
  

css:

 .logo-wrapper {
    text-align: center;
    margin-bottom: -37px;
}

.logo {
    width: 100px;
    display: inline-block;
}

.navbar li {
    display: inline-block;
    padding: 0 10px 10px;
}

.half {
    width: 50%;
    display: block;
    float: left;
}

.right-navlist {
    padding-left: 60px;
}

.left-navlist {
    text-align: right;
    padding-right: 60px;
}
  

Что касается того, как реализовать это с помощью WordPress, я полагаю, вам придется избавиться от плагина navwalker. Просто создайте два меню в WordPress: left-primary и right-primary . Затем просто повторите их wp_get_nav_menu_items('left-primary') и создайте меню, как я предложил. Вот php-код без навигатора:

 <div class="navbar navbar-default">
    <div class="logo-wrapper">
        <div class="logo"><img class="logo" src="http://www.hsdtaxlaw.com/wp-content/uploads/2016/05/logo_placeholder.png" alt=""></div>
    </div>
    <div class="half">      
        <ul class="left-navlist">
            <?
                $menu = wp_get_nav_menu_items('left-primary');
                foreach ($menu as $menu_item) {
                    $title = $menu_item->title;
                    $link = $menu_item->url;
                    ?>
                        <li href="<?=$link?>"><?=$title?></li>
                    <?
                ?
            ?>
        </ul>
    </div>
    <div class="half">      
        <ul class="right-navlist">
            <?
                $menu = wp_get_nav_menu_items('right-primary');
                foreach ($menu as $menu_item) {
                    $title = $menu_item->title;
                    $link = $menu_item->url;
                    ?>
                        <li href="<?=$link?>"><?=$title?></li>
                    <?
                ?
            ?>
        </ul>
    </div>
</div>
  

Комментарии:

1. большое вам спасибо за ваш ответ, сэр. я отредактировал свой пост и каким-то образом … я хочу знать, как разделить мой навигатор, потому что я использую WordPress.

2. Я чувствую, что это должно быть принято в качестве ответа, поскольку оно делает именно то, о чем просил OP.

3. @JcJohn Я добавил php-код без навигатора. Все, что вам нужно сделать, это добавить два меню в WordPress: wpbeginner.com/beginners-guide /…

4. @JcJohn всегда рад помочь. У вас также может быть только одно меню, в котором четные элементы расположены слева, а нечетные — справа.

Ответ №2:

Некоторое время назад я искал то же самое и наткнулся на это перо. реквизит для Брайана Уиллиса

Заголовки Bootstrap 3 Посмотрите на последний пример !

HTML

 <div class="container">
<nav class="navbar navbar-default">
<div class="container-fluid">
  <div class="navbar-header">
    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar9">
      <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 class="brand-centered">
  <a class="navbar-brand" href="http://disputebills.com"><img style="margin-right: 10px; padding: 0;" src="http://res.cloudinary.com/disputebills/image/upload/v1462474206/blue-mark_cnzgry.png" alt="Dispute Bills">Dispute Bills
  </a>
  </div>

  <div id="navbar9" class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-left">
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">About</a></li>
    </ul>
    <ul class="nav navbar-nav navbar-right">
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">About</a></li>
    </ul>
  </div>
  <!--/.nav-collapse -->
</div>
<!--/.container-fluid -->
  

CSS

 .navbar-brand {
  padding: 0px;
}
.navbar-brand>img {
  height: 100%;
  padding: 15px;
  width: auto;
}
/* EXAMPLE 9 - Center with Flexbox and Text*/
.brand-centered {
  display: flex;
  justify-content: center;
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
}
.brand-centered .navbar-brand {
  display: flex;
  align-items: center;
}
  

Ответ №3:

Хорошо, попробуйте использовать приведенную ниже разметку, чтобы достичь того, что вы ищете, вам также нужно немного изменить CSS, чтобы переопределить стили начальной загрузки по умолчанию.

HTML

 <nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
         <li class="active"><a href="#">Home</a></li>
         <li><a href="#about">About</a></li>
         <a class="navbar-brand">Your logo</a>
         <li><a href="../navbar/">Contact</a></li>
         <li><a href="../navbar/">Profile</a></li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav>
  

CSS, который обеспечивает то, что вы хотите (убедитесь, что это переопределяет стили начальной загрузки по умолчанию)

 .navbar-nav {
    float: none;
    margin: auto;
    max-width: 40%; //adjust to your requirements
}
  

Откройте код здесь

Комментарии:

1. как я могу разделить навигатор на две части, сэр .. спасибо за ваш ответ

2. можете ли вы сказать мне, что вы подразумеваете под разделением на два? Пожалуйста, проверьте этот codepen .

3. я имею в виду функцию dynamic navwalker WordPress, сэр, которая делает навигацию динамической, добавляя страницы. как я могу заставить его автоматически разделяться на два, а в центре — логотип, сэр