我正在使用bootstrap 3.0.0。
在使用Default Navbar示例时,使用一些自定义CSS,我发现搜索表单文本框在chrome上占据全宽,因此我的导航栏分为三行。它在Firefox和IE上运行良好。
问题是,在firefox中计算的宽度是236px,但在chrome中,它是1110px。 firefox&最后附上了chrome截图。代码在屏幕截图和JSFiddle之后给出,但输出不能在那里看到。仅供参考。
它是否是Chrome中的已知错误或更多可能是我做错了。如果是的话,有人可以弄清楚我做了什么错误吗?
自定义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;
}
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>
修改
在chrome
中的CSS修复问题中添加以下行.navbar-search{max-width: 250px;}
但是我认为这是黑客攻击。是不是有更好的方法来解决这个问题?
答案 0 :(得分:2)
您还可以在其他浏览器中测试吗?我认为铬可能正确。但你是正确的输入渲染在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>
请注意,需要浮动左侧才能显示差异(您的左侧浮动来自导航栏左侧类)。
上述内容可以“翻译”为:
<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>
上面的内容在chrome和Firefox中也有所不同,没有Boosstrap的CSS。我不知道Bootstrap CSS是错误的,或者其中一个浏览器现在是错误的。另见:https://github.com/twbs/bootstrap/issues/10645
答案 1 :(得分:2)
我在Chrome上遇到了同样的问题。我决定在display:table
元素上添加form
。
更好的解决方案是添加此css:
@media (min-width: 767px) {
.navbar-form.navbar-left{
display:table;
}
}
我还删除了您的 <div class="col-lg-12">
(有了它,它不起作用):
<form class="navbar-form navbar-left navbar-search" role="search">
<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 -->
</form>