新手CSS问题.我以为display:block元素的width:auto表示"填满可用的空间".然而,对于<input>元素,情况似乎并非如此.例如:

<body>
  <form style='background:red'>
    <input type='text' style='background:green; display:block; width:auto'>
  </form>
</body>

那么有两个问题:

  1. width:auto到底意味着什么有定义吗?CSS规范对我来说似乎很模糊,但可能我错过了相关部分.

  2. 有没有一种方法可以实现输入字段的预期行为,即像其他块级元素那样填充可用空间?

谢谢!

推荐答案

<input>的宽度由其size属性生成.默认值size是驱动自动宽度的因素.

你可以试试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>

UPDATE

这是几分钟后我能做的最好的.在FF、Chrome和Safari中,它是1px,而在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>

Css相关问答推荐

收听类人猿上的输入验证事件

自定义kendo色彩 Select 器中的清晰按钮

如何将CSS Paint API与Reaction一起使用

React呈现多个css文件

如何将另一种自定义位置 colored颜色 添加到三角形CSS中?

为什么我的容器的弹性包裹会导致我的自动填充网格添加额外的空轨道行?

如何仅在CSS中屏蔽具有多个形状的div框?

当弯曲方向设置为列时如何制作等高卡片?

TypeScript 中有效的 CSS 属性名称数组,但带有连字符

在 SVG 元素上方添加标签而不移动 SVG 元素

tailwind css 中的自定义组状态

用css画3个三角形

你可以在 CSS 中扩展实体(entity)吗?

使用 CSS 在悬停时转换 SVG 路径的填充属性

边框半径 + 背景 colored颜色 == 裁剪边框

使用 Twitter Bootstrap 使页脚粘在页面底部

rotate3d 速记

更改 FontAwesome 图标的字体粗细?

在移动网络上禁用捏zoom

css 中的 clearfix 类有什么作用?