chrome上的引导导航栏表单宽度问题
Posted
技术标签:
【中文标题】chrome上的引导导航栏表单宽度问题【英文标题】:Bootstrap navbar-form width issue on chrome 【发布时间】:2013-09-19 06:29:27 【问题描述】:我正在使用引导程序 3.0.0。
在使用 Default Navbar 示例时,使用一些自定义 CSS,我发现搜索表单文本框在 chrome 上占全宽度,因此我的导航栏被分成三行。它在 Firefox 和 IE 上运行良好。
问题是,Firefox 中的计算宽度为 236 像素,但在 chrome 中为 1110 像素。 Firefox 和 chrome 截图都附在最后。屏幕截图后以及JSFiddle 给出了代码,但在那里看不到输出。仅供参考。
这是 chrome 中的一个已知错误,或者更可能是我做错了什么。如果是的话,有人可以弄清楚我做错了什么吗?
自定义 CSS
@import url(http://fonts.googleapis.com/css?family=Spirax|Oleo+Script+Swash+Caps&text=FlipKhan);
bodybackground: url("../images/bg.gif") scroll center top #C0C0C0;
.navbar-top margin-bottom: 0; min-height: 35px; height:50px;
.navbar-top div.containerheight:45px;
.navbar-top div.container div.navbar-headerheight:45px;
.navbar-top a.navbar-brand padding: 10px;
.navbar-top div.container div.collapseheight: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-searchmax-width: 250px;
但是我认为这是 hack。没有更好的方法来解决这个问题吗?
【问题讨论】:
太好了,谢谢你的回答。我将.navbar-search
包装到媒体查询中,这样它就不会像这样在移动设备上中断:@media (min-width: 768px) .navbar-search max-width: 250px;
【参考方案1】:
我在 Chrome 上遇到了同样的问题。我解决了它在form
元素上添加display:table
。
更好的解决方案是添加这个 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>
【讨论】:
【参考方案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>
请注意,需要向左浮动来显示差异(您的向左浮动来自 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>
在没有 Boostrap 的 CSS 的情况下,上述内容在 chrome 和 Firefox 中呈现不同。我不知道 Bootstrap CSS 是错误的还是其中一个浏览器现在是错误的。另见:https://github.com/twbs/bootstrap/issues/10645
【讨论】:
我不是唯一一个在那里应用 hack 的人,感谢让我感觉更好。确切的问题/黑客在github.com/twbs/bootstrap/issues/9950 给出,但我通过你的链接到达那里。以上是关于chrome上的引导导航栏表单宽度问题的主要内容,如果未能解决你的问题,请参考以下文章