mig*_*igu 13 html css twitter-bootstrap bootstrap-4
我有一个内联表单,旁边有一个搜索栏和一个搜索按钮.如何强制input-groupdiv跨越Bootstrap 4中的整个列,最好不使用自定义CSS?
<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">
<input type="text" name="search" id="search" value="test" placeholder="Search accounts, contracts and transactions" class="form-control">
<span class="input-group-btn">
<input type="submit" name="commit" value="Search" class="btn btn-primary" data-disable-with="Search">
</span>
</div>
</form>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Zim*_*Zim 18
2018年更新
删除form-inline..
<div class="container">
<div class="row">
<div class="col-md-12">
<form action="" accept-charset="UTF-8" method="get">
<div class="input-group">
<input type="text" name="search" id="search" value="test" placeholder="Search accounts, contracts and transactions" class="form-control">
<span class="input-group-btn">
<input type="submit" name="commit" value="Search" class="btn btn-primary" data-disable-with="Search">
</span>
</div>
</form>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
演示:http://www.codeply.com/go/4eu7w6KPkT
另一个选项 - 在xs上垂直堆叠的全宽输入:
<div class="row">
<div class="col-md-12">
<form class="row">
<div class="col-12 col-sm pr-sm-0">
<input type="text" name="search" id="search" value="test" placeholder="Search accounts, contracts and transactions" class="form-control">
</div>
<div class="col-12 col-sm-auto pl-sm-0">
<input type="button" name="commit" value="Search" class="btn btn-primary btn-block">
</div>
</form>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Jam*_*son 16
您有三种可能的方法来实现以下两个布局选项:
请参阅我的 Codeply.com 演示下面详述的所有解决方案...
只需将类添加flex-fill到您的<div class="form-group">.
请注意,从上面的原始示例代码中,Bootstrap 4 已从使用input-group-btn 更改input-group-append为使按钮粘在关键字字段并正确处理圆角。
最后,我还添加了一个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>
Run Code Online (Sandbox Code Playgroud)
对于此解决方案,您有两种选择,具体取决于所需的 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>
Run Code Online (Sandbox Code Playgroud)
如果你有机会,我会选择这个解决方案,因为它产生最干净的 HTML ;)
如果您的表单需要一些包装器 div,(例如,由于与您的 CMS 冲突),那么您必须与放置类的位置作斗争:首先,替换<div class="input-group">with <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>
Run Code Online (Sandbox Code Playgroud)
最终,您的选择可能归结为您希望它如何在移动设备上工作。您当然可以进一步修改代码,但值得查看以下断点: