chrome上的Bootstrap navbar-form宽度问题

Kap*_*rma 5 html css google-chrome twitter-bootstrap twitter-bootstrap-3

我正在使用bootstrap 3.0.0.

在使用Default Navbar示例时,使用一些自定义CSS,我发现搜索表单文本框在chrome上占据了全宽,因此我的导航栏分为三行.它在Firefox和IE上运行良好.

问题是,在firefox中计算的宽度是236px,但在chrome中,它是1110px.firefox和chrome截图都附在最后.代码在屏幕截图和JSFiddle之后给出,但输出不能在那里看到.它仅供参考.

它是chrome中的已知错误还是更多可能是我做错了.如果是,有人可以弄清楚我做了什么错误?

Chrome屏幕截图 Firefox截图

自定义CSS

@import url(http://fonts.googleapis.com/css?family=Spirax|Oleo+Script+Swash+Caps&text=FlipKhan);
body{background: url("../images/bg.gif") scroll center top #C0C0C0;}
.navbar-top {margin-bottom: 0; min-height: 35px; height:50px;}
.navbar-top div.container{height:45px;}
.navbar-top div.container div.navbar-header{height:45px;}
.navbar-top a.navbar-brand {padding: 10px;}
.navbar-top div.container div.collapse{height:45px;}
.navbar-top .navbar-brand {font-family: 'Oleo Script Swash Caps', cursive; font-size: 35px; color: #FFF;}
.navbar-inverse {
  background: none !important; 
  border: 0 !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
}
.navbar-inverse .nav .active > a {
  background: 0 !important; 
  color: #333 !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
}
.navbar-inverse .nav > li > a {
  color: #333 !important;
  text-shadow: none !important;
}
.navbar-inverse .nav > li > a:hover {
  color: #333 !important;
}
Run Code Online (Sandbox Code Playgroud)

HTML(仅适用于导航栏)

<header>
  <nav class="navbar navbar-top navbar-default navbar-inverse" role="navigation">
    <div class="container">
      <!-- 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>
        <a class="navbar-brand" href="index.html">FlipKhan</a>
      </div>
      <!-- Collect the nav links, forms, and other content for toggling -->
      <div class="collapse navbar-collapse navbar-ex1-collapse">
        <form class="navbar-form navbar-left navbar-search" role="search">
          <div class="col-lg-12">
            <div class="input-group">
              <input type="text" class="form-control input-sm">
              <span class="input-group-btn">
                <button class="btn btn-info btn-sm" type="submit"><span class="glyphicon glyphicon-search"></button>
              </span>
            </div><!-- /input-group -->
          </div><!-- /.col-lg-6 -->
        </form>
        <ul class="nav navbar-nav navbar-right">
          <li><a href="#">Login</a></li>
          <li><a href="#">Register</a></li>
        </ul>
      </div><!-- /.navbar-collapse -->
    </div>
  </nav>
</header>
Run Code Online (Sandbox Code Playgroud)

编辑:

在chrome中添加CSS修复问题中的以下行

.navbar-search{max-width: 250px;}
Run Code Online (Sandbox Code Playgroud)

但是我认为这是黑客攻击.是不是有更好的方法来解决这个问题?

Bas*_*sen 2

您还可以在其他浏览器中测试吗?我认为 chrome 渲染可能是正确的。但你是对的,chrome 和 firefox 中的输入呈现不同。

您可以将问题简化为:

<div style="float:left;">
<div class="input-group">
              <input type="text" class="form-control input-sm">
              <span class="input-group-btn">
              <button class="btn btn-info btn-sm" type="submit"><span class="glyphicon glyphicon-search"></span></button>
              </span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

请注意,需要使用左浮动来显示差异(您的左浮动来自 navbar-left 类)。

上面的内容可以“翻译”为:

<div style="float:left;">
<div style="height:10px;background-color:red;" style="width:100%;">
<span style="display:table-cell;position:relative;width:1%;">txt</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

上面的渲染在 Chrome 和 Firefox 中也不同,而且没有 Boostrap 的 CSS。我暂时不知道 Bootstrap CSS 是错误的还是其中一个浏览器是错误的。另请参阅: https: //github.com/twbs/bootstrap/issues/10645