导航栏中的 Twitter Bootstrap 搜索框在 chrome 和 firefox 中呈现不同

Posted

技术标签:

【中文标题】导航栏中的 Twitter Bootstrap 搜索框在 chrome 和 firefox 中呈现不同【英文标题】:Twitter Bootstrap search box in navbar renders differently in chrome and firefox 【发布时间】:2014-05-31 05:19:10 【问题描述】:

我的网站上有以下导航栏 - 其想法是徽标、链接和带有按钮的搜索框都应该显示在一行中,因为它目前在 Chrome 中呈现:

但是。当我在 Firefox 中打开网站时,它的显示如下:

代码如下:

<header>
        <nav class="navbar navbar-default" role="navigation" id="navbarStyle">             
          <div class="nav navbar-nav navbar-left">      
            <a href="<?=base_url()?>">Brand</a>
           </div> 

       <div class="nav navbar-nav navbar-right">                         
        <form class="navbar-form navbar-left navbar-search" role="search">
                        <div class="form-group">
                            <div class="input-group">
                            <div class="col-lg-1">    
                            <input type="text" class="form-control"placeholder="Search">
                            <button type="submit" class="btn btn-danger">
                            <span class="glyphicon glyphicon-search"></span>
                            </button>
                            </div>
                            </div>
                        </div>
                    </form>
                </div>

            <div>
                <ul class="nav nav-justified">
                    <li><a href="#">Link 1</a></li>
                    <li><a href="#">Link 2</a></li>
                    <li><a href="#">Link 3</a></li>
                    <li><a href="#">Link 4</a></li>
                </ul>
            </div>
        </nav>
    </header>

我一直在努力解决这个问题好几个小时,但没有任何成功。任何帮助都感激不尽!谢谢!

【问题讨论】:

【参考方案1】:

我认为您遇到问题的主要原因是您在表单控件周围的 div 上使用了 col-lg-1 类。这迫使它的宽度是父元素宽度的 1/12(这已经非常小)。这然后将搜索按钮强制到下一行。您可以完全摆脱这个周围的 div,它只会使自己成为父级的最大宽度。再看一遍 bootstrap Grid 的文档,确保您确切知道应该如何使用它。

您还应该将搜索按钮包含在 &lt;span class="input-group-btn"&gt;..your button..&lt;/span&gt; 中以使其正确呈现 - 请参阅 http://getbootstrap.com/components/#input-groups-buttons

这是我调整后的代码版本

<header>
    <nav class="navbar navbar-default" role="navigation" id="navbarStyle">             
        <div class="nav navbar-nav navbar-left">      
            <a href="<?=base_url()?>">Brand</a>
        </div> 

        <div class="nav navbar-nav navbar-right">                         
            <form class="navbar-form navbar-left navbar-search" role="search">
                <div class="form-group">
                    <div class="input-group">
                        <input type="text" class="form-control" placeholder="Search">
                        <span class="input-group-btn">
                            <button type="submit" class="btn btn-danger">
                                <span class="glyphicon glyphicon-search"></span>
                            </button>
                        </span>
                    </div>
                </div>
            </form>
        </div>

        <div>
            <ul class="nav nav-justified">
                <li><a href="#">Link 1</a></li>
                <li><a href="#">Link 2</a></li>
                <li><a href="#">Link 3</a></li>
                <li><a href="#">Link 4</a></li>
            </ul>
        </div>
    </nav>
</header>

请注意,我根本没有测试过这么多,而且我认为它在小屏幕上的渲染效果不佳,但我认为它无论如何都做得不太好。但是试一试,希望对您有所帮助。

【讨论】:

以上是关于导航栏中的 Twitter Bootstrap 搜索框在 chrome 和 firefox 中呈现不同的主要内容,如果未能解决你的问题,请参考以下文章

在 IE 的 Twitter Bootstrap 导航栏中替换背景

如何在 twitter bootstrap3 的导航栏中增加搜索栏的宽度

菜单项未清除 Bootstrap 导航栏中的徽标

导航栏中的 Bootstrap 3.0 按钮

Bootstrap 导航栏中的中心菜单项

Twitter Bootstrap 中的导航栏颜色