假设我有一个这样的html片段:
<div style="width:300px;">
<label for="MyInput">label text</label>
<input type="text" id="MyInput" />
</div>
这不是我的确切代码,但重要的是,在固定宽度的容器中,在同一行上有一个标签和一个文本输入。我如何样式的输入,以填补容器的剩余宽度没有包装和不知道标签的大小?
假设我有一个这样的html片段:
<div style="width:300px;">
<label for="MyInput">label text</label>
<input type="text" id="MyInput" />
</div>
这不是我的确切代码,但重要的是,在固定宽度的容器中,在同一行上有一个标签和一个文本输入。我如何样式的输入,以填补容器的剩余宽度没有包装和不知道标签的大小?
当前回答
请使用flexbox进行此操作。你有一个容器,它将把它的子容器弯曲成一行。第一个子进程根据需要占用它的空间。第二个弯曲以占据所有剩余的空间:
< div style = "显示屏:flex; flex-direction row”> < for =“MyInput >标签label 短信< - >标签 <输入类型=“文本”id=“my输入”样式=“flex:1”/> < / div >
其他回答
请使用flexbox进行此操作。你有一个容器,它将把它的子容器弯曲成一行。第一个子进程根据需要占用它的空间。第二个弯曲以占据所有剩余的空间:
< div style = "显示屏:flex; flex-direction row”> < for =“MyInput >标签label 短信< - >标签 <输入类型=“文本”id=“my输入”样式=“flex:1”/> < / div >
如果你正在使用Bootstrap 4:
<form class="d-flex">
<label for="myInput" class="align-items-center">Sample label</label>
<input type="text" id="myInput" placeholder="Sample Input" class="flex-grow-1"/>
</form>
更好的是,使用Bootstrap内置的东西:
<form>
<div class="input-group">
<div class="input-group-prepend">
<label for="myInput" class="input-group-text">Default</label>
</div>
<input type="text" class="form-control" id="myInput">
</div>
</form>
https://jsfiddle.net/nap1ykbr/
非常简单的技巧是使用CSS calc公式。所有现代浏览器,IE9,各种移动浏览器都应该支持这个功能。
<div style='white-space:nowrap'>
<span style='display:inline-block;width:80px;font-weight:bold'>
<label for='field1'>Field1</label>
</span>
<input id='field1' name='field1' type='text' value='Some text' size='30' style='width:calc(100% - 80px)' />
</div>
尽管每个人都讨厌表格的布局,但它们确实在这方面有所帮助,要么使用显式的表格标签,要么使用display:table-cell
<div style="width:300px; display:table">
<label for="MyInput" style="display:table-cell; width:1px">label text</label>
<input type="text" id="MyInput" style="display:table-cell; width:100%" />
</div>
你可以试试这个:
div#panel { border:solid; width:500px; height:300px; } div#content { height:90%; background-color:#1ea8d1; /*light blue*/ } div#panel input { width:100%; height:10%; /*make input doesnt overflow inside div*/ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; /*make input doesnt overflow inside div*/ } <div id="panel"> <div id="content"></div> <input type="text" placeholder="write here..."/> </div>