CSS使文本框填充所有可用宽度

标签 css textbox width

我的网页中有以下“行”

<div style="width:100%">
"Some Text" <DropDown> "Some more text" <TextBox> <Button> <Button>
</div>

我实际上无法控制 DropDown 控件的宽度,因为它的大小适合最长的选项值。按钮是固定宽度的。如何让 TextBox 填充所有可用的剩余宽度?

我试着把它放在一个表格中,但遇到了同样的问题,即如何使所有其他列尽可能小以适应它们的内容,然后 TextBox 列填充剩余宽度?

如果有必要,Hacky 解决方案很好,我很久以前就放弃了任何假装甚至关心 CSS 标准,因为做最简单的事情是如此困难。

编辑:澄清一下,我所说的 TextBox 是指 <input type="text"/>

最佳答案

2018 年更新的答案

刚遇到这个老问题,现在有一种更简单、更清晰的方法可以通过使用 CSS Flexible Box Layout Model 来实现。现在所有主流浏览器都支持它。

.flex-container {
  display: flex;
}

.fill-width {
  flex: 1;
}
<div class="flex-container">
	<label>Name:</label><input class="fill-width" type="text" /><span>more text</span>
</div>

希望这对某人有帮助!

下面是旧答案

我知道这是一个老问题,但这里没有正确的解决方案,以防其他人在这里找到方法:

解决方案是将文本框包裹在一个 span 中。

HTML:

<label>Input</label>
<span>
    <input/>
</span>

CSS:

label {
    float: left;
}

input {
    width: 100%;
    box-sizing:border-box;
}

span {
    display: block;
    overflow: hidden;
}

参见 this fiddle举个例子(现在有点过时了,因为我删除了填充以支持在输入上使用边框)。

关于CSS使文本框填充所有可用宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193880/

相关文章:

css - 如何在CSS中给出适当的边距

textbox - 如何在 Smartgwt 2.4 中将 TextItem 添加到 HLayout?

html - 100% 自定义输入宽度

c - 在C中获取终端宽度?

css - 在不使用任何库和框架的情况下,顶部导航栏和页脚位置不会弄乱页面的其余部分

css - 有没有办法缩短 css 选择器?

Java:显示放入文本框小程序的不同类的结果

css - 如何更改 WordPress 中的特定小部件?

html - 具有设置宽度 div 的 Bootstrap 全宽容器

不同浏览器上的 Css 行为