获取表单输入以扩展到具有可变大小标签的容器的全宽
Get form input to expand to full width of container with variable size label
SO 上有几篇文章涉及将内容扩展到容器。 None 其中似乎涵盖了当表单控件旁边有一个宽度可变的内联标签时,将表单控件的宽度扩展到其容器的用例。
我希望标签为任意大小,然后将文本字段扩展到剩余宽度。设置 width: 100% 使其撞到下一行。
这是代码示例:http://codepen.io/anon/pen/GWgraK
<form class="form-inline">
<div class="row">
<div class="form-group string optional bc_search_last_name">
<label class="string optional control-label" for="bc_search_last_name">label</label>
<input class="string optional form-control" type="text" name="bc_search[last_name]" id="bc_search_last_name">
</div>
</div>
<div class="row">
<div class="form-group string optional bc_search_first_name">
<label class="string optional control-label" for="bc_search_first_name">Really long label</label>
<input class="string optional form-control" type="text" name="bc_search[first_name]" id="bc_search_first_name">
</div>
</div>
</form>
和Sasscss
.form-inline
width: 600px
border: 1px dotted black
position: relative
left: 50px
top: 50px
padding-left: 20px
padding-top: 5px
.form-group
margin-bottom: 10px
width: 100%
.control-label
padding: 6px 9px 6px 6px
border: 1px solid #ccc
border-right: 0
border-radius: 5px 0 0 5px
background-color: rgba(179, 177, 177, 0.28)
float: left
.form-control
width: auto
float: left
您可以在父级上使用 display: flex;
并在输入上使用 flex-grow: 1;
以使输入增长以填充可用的 space。
.form-inline {
width: 600px;
border: 1px dotted black;
position: relative;
left: 50px;
top: 50px;
padding: 10px 10px 0;
}
.form-inline .form-group {
margin-bottom: 10px;
width: 100%;
}
.form-inline .control-label {
padding: 6px 9px 6px 6px;
border: 1px solid #ccc;
border-right: 0;
border-radius: 5px 0 0 5px;
background-color: rgba(179, 177, 177, 0.28);
}
.form-inline .form-group {
display: flex!important;
}
.form-group input {
flex-grow: 1;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<form class="form-inline">
<div>
<div class="form-group string optional bc_search_last_name"><label class="string optional control-label" for="bc_search_last_name">label</label><input class="string optional form-control" type="text" name="bc_search[last_name]" id="bc_search_last_name"></div>
</div>
<div>
<div class="form-group string optional bc_search_first_name"><label class="string optional control-label" for="bc_search_first_name">Really long label</label><input class="string optional form-control" type="text" name="bc_search[first_name]" id="bc_search_first_name"></div>
</div>
</form>
尝试使用 flexbox 而不是 float
.form-group {display: flex}
.form-control {flex: 1}
SO 上有几篇文章涉及将内容扩展到容器。 None 其中似乎涵盖了当表单控件旁边有一个宽度可变的内联标签时,将表单控件的宽度扩展到其容器的用例。
我希望标签为任意大小,然后将文本字段扩展到剩余宽度。设置 width: 100% 使其撞到下一行。
<form class="form-inline">
<div class="row">
<div class="form-group string optional bc_search_last_name">
<label class="string optional control-label" for="bc_search_last_name">label</label>
<input class="string optional form-control" type="text" name="bc_search[last_name]" id="bc_search_last_name">
</div>
</div>
<div class="row">
<div class="form-group string optional bc_search_first_name">
<label class="string optional control-label" for="bc_search_first_name">Really long label</label>
<input class="string optional form-control" type="text" name="bc_search[first_name]" id="bc_search_first_name">
</div>
</div>
</form>
和Sasscss
.form-inline
width: 600px
border: 1px dotted black
position: relative
left: 50px
top: 50px
padding-left: 20px
padding-top: 5px
.form-group
margin-bottom: 10px
width: 100%
.control-label
padding: 6px 9px 6px 6px
border: 1px solid #ccc
border-right: 0
border-radius: 5px 0 0 5px
background-color: rgba(179, 177, 177, 0.28)
float: left
.form-control
width: auto
float: left
您可以在父级上使用 display: flex;
并在输入上使用 flex-grow: 1;
以使输入增长以填充可用的 space。
.form-inline {
width: 600px;
border: 1px dotted black;
position: relative;
left: 50px;
top: 50px;
padding: 10px 10px 0;
}
.form-inline .form-group {
margin-bottom: 10px;
width: 100%;
}
.form-inline .control-label {
padding: 6px 9px 6px 6px;
border: 1px solid #ccc;
border-right: 0;
border-radius: 5px 0 0 5px;
background-color: rgba(179, 177, 177, 0.28);
}
.form-inline .form-group {
display: flex!important;
}
.form-group input {
flex-grow: 1;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<form class="form-inline">
<div>
<div class="form-group string optional bc_search_last_name"><label class="string optional control-label" for="bc_search_last_name">label</label><input class="string optional form-control" type="text" name="bc_search[last_name]" id="bc_search_last_name"></div>
</div>
<div>
<div class="form-group string optional bc_search_first_name"><label class="string optional control-label" for="bc_search_first_name">Really long label</label><input class="string optional form-control" type="text" name="bc_search[first_name]" id="bc_search_first_name"></div>
</div>
</form>
尝试使用 flexbox 而不是 float
.form-group {display: flex}
.form-control {flex: 1}