我有一个html输入。
输入有填充:5px 10px;我希望它是100%的父div的宽度(这是流体)。
然而使用宽度:100%;导致输入为100% + 20px我怎么才能解决这个问题呢?
例子
我有一个html输入。
输入有填充:5px 10px;我希望它是100%的父div的宽度(这是流体)。
然而使用宽度:100%;导致输入为100% + 20px我怎么才能解决这个问题呢?
例子
当前回答
假设我在一个15px填充的容器中,这是我总是用于内部部分的:
width:auto;
right:15px;
left:15px;
这将把内部部分拉伸到任何宽度,它应该小于15px两侧。
其他回答
将输入框的填充移到包装器元素。
<style>
div.outer{ background: red; padding: 10px; }
div.inner { border: 1px solid #888; padding: 5px 10px; background: white; }
input { width: 100%; border: none }
</style>
<div class="outer">
<div class="inner">
<input/>
</div>
</div>
参见示例:http://jsfiddle.net/L7wYD/1/
也使用百分比填充,并从宽度中删除:
padding: 5%; width: 90%;
你可以这样做:
width: auto;
padding: 20px;
Box-sizing: border-box是一个快速,简单的方法来修复它:
这将适用于所有现代浏览器和IE8+。
这里是一个演示:http://jsfiddle.net/thirtydot/QkmSk/301/
.content {
width: 100%;
box-sizing: border-box;
}
在现代浏览器中不需要浏览器前缀版本(-webkit-box-sizing等)。
把它包在容器里怎么样?容器应该有这样的风格:
{
width:100%;
border: 10px solid transparent;
}