新手CSS问题。我认为宽度:auto为显示:块元素意味着“填充可用空间”。然而,对于< input>元素这似乎不是这样的。例如:
<body> <form style='background-color:red'> <input type='text' style='background-color:green;display:block;width:auto'> </form> </body>
两个问题:
>有什么宽度的定义:auto是什么意思? CSS规范似乎模糊了我,但也许我错过了相关部分。
>有一种方法来实现我的输入字段的预期行为 – ie。填充可用空间像其他块级元素?
谢谢!
解决方法
< input>的宽度根据其size属性生成。默认大小是驱动自动宽度的。
你可以尝试宽度: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>
更新
这是最好的,我可以做几分钟后。它的1px关闭FF,Chrome和Safari,并完美的在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>