如何使Bootstrap输入字段与其父字段完全相同?
史蒂夫 - 奥布莱恩在Bootstrap Issue #1058写道:
直接应用于输入字段时,设置为100%不起作用,因为它不考虑填充。因此,您最终得到100%的容器加上输入框上的填充,因此输入框通常会在容器外部打破。
该票证提供了各种解决方案,但我正在寻找最好的方法 - 最好是已经由Bootstrap提供的CSS类。
答案 0 :(得分:107)
应用input-block-level
类对我来说非常适合各种屏幕宽度。它由Bootstrap in mixins.less
定义如下:
// Block level inputs
.input-block-level {
display: block;
width: 100%;
min-height: 28px; // Make inputs at least the height of their button counterpart
.box-sizing(border-box); // Makes inputs behave like true block-level elements
}
这与his comment on issue #1058中'assembler'建议的风格非常相似。
答案 1 :(得分:20)
只需添加box-sizing:
input[type="text"] {
box-sizing: border-box;
}
答案 2 :(得分:7)
对于任何人使用Google搜索,一个建议是删除所有input-group
类实例。在类似的情况下为我工作。原始代码:
<form>
<div class="bs-callout">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control" name="time" placeholder="Time">
</div>
</div>
</div>
<div class="col-md-8">
<div class="form-group">
<div class="input-group">
<select name="dtarea" class="form-control">
<option value="1">Option value 1</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="input-group">
<input type="text" name="reason" class="form-control" placeholder="Reason">
</div>
</div>
</div>
</form>
&#13;
新代码:
<form>
<div class="bs-callout">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<input type="text" class="form-control" name="time" placeholder="Time">
</div>
</div>
<div class="col-md-8">
<div class="form-group">
<select name="dtarea" class="form-control">
<option value="1">Option value 1</option>
</select>
</div>
</div>
</div>
<div class="row">
<input type="text" name="reason" class="form-control" placeholder="Reason">
</div>
</div>
</form>
&#13;
答案 3 :(得分:7)
如果您正在使用C#ASP.NET MVC的默认模板,您可能会发现 site.css 会覆盖某些Bootstraps样式。如果你想使用Bootstrap,就像我一样,让M $覆盖它(在你不知情的情况下)可能会让人非常沮丧!随意删除任何不需要的样式...
/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
max-width: 280px;
}
答案 4 :(得分:4)
我找到了一个适合我案例的解决方案:
<input class="form-control" style="min-width: 100%!important;" type="text" />
您只需要覆盖 min-width 设置 100%和重要,结果就是这样:
如果你不申请,你将永远得到这个:
答案 5 :(得分:3)
为了获得所需的结果,您必须设置&#34; box-sizing:border-box&#34;与默认值相比,&#34; box-sizing:content-box&#34;。这正是您所指的问题(来自MDN):
这是CSS标准指定的初始值和默认值。测量宽度和高度属性仅包括内容,但不包括填充,边框或边距。
宽度和高度属性包括内容,填充和边框,但不包括边距。&#34;
参考:https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing
此CSS的兼容性很好。
答案 6 :(得分:0)
只需添加:
width: 100% !important;
答案 7 :(得分:0)
怎么样?
DataGridView
检查某些css文件是否导致问题。默认情况下,bootstrap显示在整个宽度上。例如,在MVC目录中,Content是site.css,并且有一个限制宽度的定义。
TextBox
答案 8 :(得分:0)
如果要以全角宽度作为父级,请使用.container-fluid
,跨视口的整个宽度。