javascript - 防止折叠的导航栏重新排序右拉元素?

标签 javascript css twitter-bootstrap responsive-design

我有以下代码(full source of page):

<div class="navbar">
<div class="navbar-inner">
<div class="container">

  <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
  <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </a>

  <!-- Be sure to leave the brand out there if you want it shown -->
  <span class="brand" href="#">Test</span>


  <!-- Everything you want hidden at 940px or less, place within here -->
  <div class="nav-collapse collapse">
   <ul class="nav">
     <li class="{% active request "^/$" %}"><a href="#">Home</a></li>
     <li class="{% active request "^/about$" %}"><a href="#">About</a></li>
   </ul>


    <form class="navbar-search pull-right">
      <input type="text" class="search-query" placeholder="Search...">
    </form>
    <div class="navbar-form pull-right">
     <a href="{% url "login" %}" class="btn">Log in</a>
     <a href="#" class="btn btn-primary">Sign up</a>
    </div>
  </div>
  </div>

    <!-- .nav, .navbar-search, .navbar-form, etc -->
  </div>
</div>

当加载为桌面时,我得到: Loaded as desktop 请注意,“登录”和“注册”按钮位于搜索栏之前。

但是,当我调整浏览器大小并且导航栏响应时,我得到以下信息: mobile version

现在,“登录”和“注册”按钮位于搜索栏后面。这是因为它们是右拉元素。

我尝试将按钮和搜索栏包装在 float: right 父 div 中。这会使它们保持正确的顺序,但会导致它们奇怪地偏离一边。这是不希望的。有没有人有一个解决方案,使他们的订单不被颠倒?

最佳答案

问题在于,一旦 nav-collapse 逻辑启动,navbar-formnavbar-search 上的 float 就会设置为 none .不要依赖 float ,而是使用 display: inline-block。以下似乎工作合理(您应该创建自己的类而不是内联应用样式):

    <div class="pull-right">
    <!-- .btn's already have display: inline-block so don't need to apply it manually -->
    <!-- margin-left: 15px is applied so that the buttons align with the 
        search field -->
        <a style="margin-left: 15px;" href="#" class="btn">Log in</a>
        <a href="#" class="btn btn-primary">Sign up</a>
        <form class="navbar-form" style="display:inline-block">
            <input type="text" class="search-query" placeholder="Search...">
        </form>     
    </div>

关于javascript - 防止折叠的导航栏重新排序右拉元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15401093/

相关文章:

css - Bootstrap 3 - 更改下拉菜单背景颜色

css - 将图标添加到输入文本中作为非文本的一部分

javascript - 将第 3 方 iframe url 更改为转发而不弹出 (_blank)

javascript - Promise 返回多个值

javascript - z-index 将元素放在另一个元素下方,即使它更高

javascript - 根据元素是否折叠更改 Bootstrap 折叠按钮中的文本

twitter-bootstrap - 导入 bootstrap less 以扩展类会在 glyphicons 字体上创建 404

javascript - 识别网页中选中的文本是否为粗体

html - 图像出现然后消失

html - 在 div 中居中图像