javascript - Bootstrap 将 glyphicon 包装在导航栏的第二行

标签 javascript jquery html css twitter-bootstrap

我正在尝试在我的 Bootstrap 网站上设置一个搜索框,该搜索框在按下搜索字形图标时隐藏和显示(隐藏和显示部分有效),但是当呈现输入框时,字形图标移动到导航栏中的第二行:

enter image description here

这是我的代码:

<nav class="navbar navbar-inverse navbar-static-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                            data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a href="index.php" class="navbar-brand"></a>
                </div>
                <div id="navbar" class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li class="home nav-item">
                            <a href="index.php">
                                <span class="glyphicon glyphicon-home" aria-hidden="true"></span> Home
                            </a>
                        </li>
                        <li class="products nav-item">
                            <a href="products.php">
                                <span class="glyphicon glyphicon-glass" aria-hidden="true"></span> Products
                            </a>
                        </li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li class="nav-item">
                            <a title="Search" class="search-button">
                                <div class="search"><input type="text" name="search" class="form-control" placeholder="Search..."></div>
                                <span class="glyphicon glyphicon-search"></span>
                            </a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>

管理隐藏和显示过程的 JavaScript 代码如下所示:

var $search = $(".search");
    $search.hide();
    $(".glyphicon-search").click(function(){
        if ($search.is(":hidden")){
            $search.fadeIn();
        } else {
            $search.fadeOut();
        }
})

我该如何解决这个问题?我已经使用 Chrome 控制台进行了一些反复试验,但没有找到解决方案。

这是演示我的问题的 JSFiddle 的链接:https://jsfiddle.net/bu3kqL0d/1/

最佳答案

默认情况下,div 是 display: block,这就是为什么 glyphicon 被推到下一行的原因。尝试:

.search { display: inline-block; }

关于javascript - Bootstrap 将 glyphicon 包装在导航栏的第二行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38055154/

相关文章:

javascript - 在 JavaScript 中哪里添加可见性切换?

javascript - 如何使用 jQuery 确定类型文件

html - 仅应用 Node js html 中第一个包含的 css 文件

JavaScript: element.setAttribute(attribute,value) , element.attribute=value & element.[attribute]=value 不改变属性值

javascript - 如何验证 react 中的输入字段?

javascript - Onsenui - 列表修饰符在 .append() jquery 中不起作用

html - 更新 View 时执行特定于 View 的 javascript

html - 防止在 header 之后换行,但不能在 header 之前换行

javascript - AJAX 请求未进入就绪状态 4

javascript - 无序列表中的粗体关键字