您有三种可能的方式来实现以下两个布局选项:
See my Codeply.com demonstrating all solutions detailed below...
带有粘性按钮的全角搜索表单
只需将flex-fill 类添加到您的<div class="form-group">。
请注意,从上面的原始示例代码中,Bootstrap 4 已从使用 input-group-btn 更改为 input-group-append 以使按钮坚持关键字字段并正确处理圆角。 p>
最后,我还添加了一个aria-label 属性以满足您示例的可访问性要求。
<div class="container">
<div class="row">
<div class="col-md-12">
<form class="form-inline" action="/search" accept-charset="UTF-8" method="get">
<div class="input-group flex-fill">
<input type="search" name="search" id="search" value="" placeholder="Full-width search form with sticky button" class="form-control" aria-label="Search this site">
<div class="input-group-append">
<input type="submit" name="commit" value="Search" class="btn btn-primary" data-disable-with="Search">
</div>
</div>
</form>
</div>
</div>
</div>
带有独立按钮的全角搜索表单,没有包装div
对于此解决方案,您有两种选择,具体取决于您所需的 HTML 结构和项目的需要。
首先,您可以删除所有包装 div 并将类 flex-fill mr-2 添加到 <input class="form-control">。这是最简单的选择。
<div class="container">
<div class="row">
<div class="col-md-12">
<form class="form-inline" action="/search" accept-charset="UTF-8" method="get">
<input type="search" name="search" id="search" value="" placeholder="Full-width search form with separate button w/o wrapper div" class="flex-fill mr-2 form-control" aria-label="Search this site">
<input type="submit" name="commit" value="Search" class="btn btn-primary" data-disable-with="Search">
</form>
</div>
</div>
</div>
如果你有机会,我会选择这个解决方案,因为它可以生成最干净的 HTML ;)
带有分隔按钮的全角搜索表单和包装div
如果您的表单需要一些包装器 div(例如,由于与您的 CMS 作斗争),那么您必须与放置类的位置进行斗争:首先,将 <div class="input-group"> 替换为 <div class="flex-fill mr-2">,添加类 w-100 到<input class="form-control">,最后删除 <div class="input-group-append"> 包装器并将提交按钮移到 flex-fill 包装器之外。
<div class="container">
<div class="row">
<div class="col-md-12">
<form class="form-inline" action="/search" accept-charset="UTF-8" method="get">
<div class="flex-fill mr-2">
<input type="search" name="search" id="search" value="" placeholder="Full-width search form with separate button w/ wrapper div" class="form-control w-100" aria-label="Search this site">
</div>
<input type="submit" name="commit" value="Search" class="btn btn-primary" data-disable-with="Search">
</form>
</div>
</div>
</div>
移动
最终,您的选择可能归结为您希望它如何在移动设备上运行。当然,您可以更进一步地处理代码,但值得查看以下断点: