【发布时间】:2014-09-02 16:43:50
【问题描述】:
我有一个包含 3 个元素的 表单
<form>
<input type="search" value="long text" />
<select>
<option>Google</option>
<option>Bing</option>
</select>
<button>Search</button>
</form>
我想让 select 和 button 有自己的宽度,并让 input 填充所有剩余空间。
我找到了不同的解决方案,但它们似乎无法正常工作。
在how-to-make-element-fill-remaining-width-when-sibling-has-variable-width 之后,我得到了想要的效果(必须添加标记并更改元素的顺序),但是 输入 被其他元素覆盖,失去了它漂亮的圆形边框。
button, select {
float: right;
}
input {
width: 100%;
}
.input_wrapper {
overflow: hidden
}
我该怎么做?
- 我需要一个跨浏览器解决方案 (>=IE7)
- 我会避免(如果可能的话)使用额外的标记
- 我想避免 输入 可能被溢出和隐藏(如上所述)。
PS - 我通常尽量避免 floats 并留在 display-block。但欢迎所有建议
【问题讨论】:
-
IE7 ??真的吗? Windows 正式取消对
XP的支持...我认为至少7之前的所有内容都已不复存在...看来我梦想的那一天在不久的将来根本不会到来...-_ - -
好的,我想我们可以从IE8开始。但如果有什么东西也适用于 IE7 显然更好。
-
@j08691 是的,完全一样。但我正在做一些测试,发现它的行为与默认的 box-sizing 类似。将其更改为 border-box 解决了这个问题。但我不明白为什么......