这是我今天早些时候问题的简化版本,因为我没有得到满意的答复。
我在这个小提琴中有一个 HTML 和 CSS 代码:http: //jsfiddle.net/wNGHz/
调整父框架的大小时,如何<input>
自动调整大小?
笔记:
- 我更喜欢只使用 CSS 而不是 JavaScript。
<input>
应该与父级的左右边缘有 100px 的距离。
这是我今天早些时候问题的简化版本,因为我没有得到满意的答复。
我在这个小提琴中有一个 HTML 和 CSS 代码:http: //jsfiddle.net/wNGHz/
调整父框架的大小时,如何<input>
自动调整大小?
笔记:
<input>
应该与父级的左右边缘有 100px 的距离。@thirtydot 在语义上我想要一个更简单的 HTML。我可以换 行
<input>
,<div>
但是为了给另一个元素添加样式而添加一个元素只是很奇怪。我想知道是否有人有更好的解决方案。
不幸的是,没有更好的方法。input
它与被替换元素的事实有关,这意味着它与非替换元素(例如div
.
一个区别是它position: absolute; left: 0; right: 0
在 an 上的工作方式input
与它在div
(WebKit 除外)上的工作方式不同。
最好的解决方法是将 包装input
在 a 中div
:
http://jsfiddle.net/thirtydot/wNGHz/6/
<div class="inputContainer">
<input type="text" value="test" />
</div>
.inputContainer {
position: absolute;
left: 50px;
right: 50px;
}
input {
width: 100%;
background-color: red;
color: white;
border: none;
}
当你有时,input { width: 100%; }
通常最好也添加box-sizing: border-box
, 以使任何padding
和border
oninput
被计算在内width: 100%
:http: //jsfiddle.net/thirtydot/wNGHz/7/
您可以以更好的方式做到这一点。
<div class="inputContainer">
<input type="text" value="test" />
</div>
input {
width: 100%;
margin:0 100px;
}
我知道的唯一纯 CSS 方式是在以下位置添加宽度:http %
: //jsfiddle.net/PeeHaa/wNGHz/1/