【问题标题】:Centering the toggle button in Bootstrap 3在 Bootstrap 3 中居中切换按钮
【发布时间】:2024-05-04 19:10:04
【问题描述】:

我在我的 wordpress 主题中使用 bootstrap 3 提供的默认导航栏(更改了某些方面,因此重命名为“.navbar-custom”)。

当屏幕为移动设备尺寸时,它在右上角有默认的“切换”。它的左侧有“.navbar-brand”。

我希望“切换”在移动模式下居中。我也希望 '.navbar-brand' 居中(如果我可以将切换开关置于网站徽标下方,那就太好了)

我找到了在 jsfiddle 中工作但对我不起作用的示例。唯一对我有任何视觉结果的是(在媒体查询中)

.navbar-toggle {
width: 100%;
float: none;
margin: 0 auto;
}

但这所做的只是将切换开关移到导航栏的左侧。我的代码是典型的 nag 代码,但在这里

<header>    
        <nav class="navbar navbar-custom row" role="navigation">   
            <!-- Brand and toggle get grouped for better mobile display --> 
                <div class="navbar-header"> 
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-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 class="navbar-brand">
                    <?php if (get_theme_mod(FT_scope::tool()->optionsName . '_logo', '') != '') { ?>
                        <a class="mylogo" rel="home" href="<?php bloginfo('siteurl');?>/" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>"><img relWidth="<?php echo intval(get_theme_mod(FT_scope::tool()->optionsName . '_maxWidth', 0)); ?>"  relHeight="<?php echo intval(get_theme_mod(FT_scope::tool()->optionsName . '_maxHeight', 0)); ?>" id="ft_logo" src="<?php echo get_theme_mod(FT_scope::tool()->optionsName . '_logo', ''); ?>" alt="" /></a>
                    <?php } else { ?>
                        <h1 class="site-title logo"><a id="blogname" rel="home" href="<?php bloginfo('siteurl');?>/" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
                    <?php } ?>
                    </div>      
                </div> 

            <!-- Collect the nav links, forms, and other content for toggling --> 
                <div class="collapse navbar-collapse navbar-ex1-collapse navbar-right"> 
                    <?php /* Primary navigation */
                        wp_nav_menu( array(
                        'menu' => 'top_menu',
                        'depth' => 2,
                        'container' => false,
                        'menu_class' => 'nav navbar-nav',
                        //Process nav menu using our custom nav walker
                        'walker' => new wp_bootstrap_navwalker())
                        );
                    ?>
                </div>
        </nav>

     <div class="row"> 
         <div class="col-md-12 col-xs-12">
            <h1>content</h1>
         </div>
     </div>

   </header>

【问题讨论】:

  • 你能分享一下小提琴吗?
  • 链接文件太多,无法创建小提琴。我的文件是父母的子主题,因此 css 在两者之间拆分。对其他对人们有用的技术感到好奇,看看我是否可以在我的情况下操纵该代码

标签: jquery html css twitter-bootstrap


【解决方案1】:

只需将您的按钮放在另一个带有text-center 类的 div 中

<div class="text-center">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-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>

编辑:

您可能想在 CSS 下方检查此内容

.navbar-toggle {
  width: 100%;
  float: none;
  margin-right: 0;
}

DEMO

【讨论】:

  • 我之前尝试过,因为这似乎是显而易见的答案,但它没有做任何事情。我在想我必须在引导代码或其他东西中覆盖一些东西。 text-align: center 似乎对任何导航栏类都没有做任何事情
  • 只需在您的bootstrap.css 中找到.text-center 类并尝试将!important 添加到其属性中..
  • 事实上text-center 有效,但问题是分配给按钮的.navbar-toggle 类有一个名为float:right 的属性,它使按钮粘在容器的右侧。您也需要覆盖该属性!!!
  • 没错!再次感谢
  • 任何时候.. :) 快乐编码.. :)
【解决方案2】:

要么:

.navbar-header { text-align: center; }

或:

.navbar-toggle {float: none; margin-right: 0; width: 100%; }

.icon-bar { margin-left: auto; margin-right: auto; }

【讨论】:

    【解决方案3】:

    在不通过将宽度悬挂为 100% 来改变设计的情况下,将切换按钮居中

    .navbar-toggle {
        float: unset; 
        margin-right: 0; 
    }
    
    .navbar-header { 
        text-align: center; 
    }
    

    【讨论】: