多年来我一直有这个问题,之前我曾见过类似的问题,但是没有一个问题解决了在元素上设置 width: 100%
的问题 - 填充,边距和边框会增加宽度 .
看看这个Fiddle .
白色最顶部的文本框是标准文本框,其宽度设置为 100%
. 正如您所看到的那样,由于边距,填充和边框设置,它会溢出它的父级 .
绿色文本框的样式类似于使用 position: absolute
的div . 这在webkit浏览器中就像一个梦想,但在其他任何地方都没有 .
红色div是控件 - 我希望输入操作 just like that .
我可以使用任何黑客/技巧让我的文本输入就像所有现代浏览器中的红色div一样,换句话说,是否适合父级的填充?请编辑我的小提琴或创建自己的答案 . 谢谢!
3 回答
尝试使用
display:table-cell
属性可以帮到你吗
请检查此链接
Style input element to fill remaining width of its container
使用
calc
来补偿边距和box-sizing
用于填充FIDDLE
您可以:
JS Fiddle demo .
注意我删除了
margin
,因为它导致溢出,并设置box-sizing
以确定元素的宽度,包括边框和填充的宽度 .