新手CSS问题。我认为width:auto一个display:block元素的意思是“填充可用空间”。但是对于一个<input>元素来说似乎并非如此。例如:
width:auto
display:block
<input>
<body> <form style='background-color:red'> <input type='text' style='background-color:green;display:block;width:auto'> </form> </body>
然后有两个问题:
是否确切定义了width:auto的含义?CSS规范对我来说似乎很模糊,但是也许我错过了相关的部分。
有没有一种方法可以实现我对输入字段的预期行为-即。像其他块级元素一样填充可用空间?
谢谢!
一个<input>的宽度从其生成size属性。默认值size是驱动自动宽度的原因。
size
您可以width:100%按照下面的示例所示尝试。
width:100%
不填充宽度:
<form action='' method='post' style='width:200px;background:khaki'> <input style='width:auto' /> </form>
填充宽度:
<form action='' method='post' style='width:200px;background:khaki'> <input style='width:100%' /> </form>
尺寸更小,宽度更小:
<form action='' method='post' style='width:200px;background:khaki'> <input size='5' /> </form>
更新
几分钟后,这是我能做的最好的事情。在FF,Chrome和Safari中关闭1像素,在IE中完美显示。(问题是#^&* IE应用边框的方式与其他方式不同,因此不一致。)
<div style='padding:30px;width:200px;background:red'> <form action='' method='post' style='width:200px;background:blue;padding:3px'> <input size='' style='width:100%;margin:-3px;border:2px inset #eee' /> <br /><br /> <input size='' style='width:100%' /> </form> </div>