html - 告诉 input[type=text] 字段有一些 margin-left 使用所有剩余的宽度(比如宽度为 :auto does)? 的 div

标签 html css forms

我尝试创建一个带有文本输入和文本区域的表单,其中标签应位于左侧,宽度为 200 像素,输入应位于右侧,使用所有可用空间。

我以这种方式列出了一个定义列表,它可以为术语提供 200px 的宽度并将其向左浮动,并为定义提供 200px 的 margin-left。这足以使定义使用所有可用宽度。在这里查看:http://jsfiddle.net/jmuheim/kjf8f/

现在我没有成功地告诉我的文本输入和文本区域以相同的方式运行。我试过 width:100%,但它太宽了,因为它有 200px 的边距。

label {
    display: block;
    margin: 0;
    background-color: green;
    float: left;
    clear: left;
    width: 200px;
}
input[type="text"], textarea {
    display: block;
    margin: 4px 0 4px 200px;
    background-color: red;
}

http://jsfiddle.net/jmuheim/WWWs3/

输入字段顶部的“边距”从何而来?文本区域没有这个。是因为 textarea 是容器标签,而 input 不是吗?有没有办法解决这个问题?我宁愿不需要任何辅助标记,例如额外的 span、div 等。

并且将标签和文本输入/区域简单地放入其自己的定义列表中并给它们都设置 100% 的宽度是否合适?这是鼓励标记,将表单输入放入定义列表吗?

非常感谢任何帮助。

最佳答案

如果你可以使用 jQuery

var block_width = $('.block').width()
var input_width = block_width -200
$('.block input, .block textarea').width(input_width)

Fiddle

关于html - 告诉 input[type=text] 字段有一些 margin-left 使用所有剩余的宽度(比如宽度为 :auto does)? 的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152810/

相关文章:

css - 默认输入 CSS 在不同浏览器中发生变化。为什么?

html - <span> "float: right"里面有 "white-space: pre"

javascript - 如何在 HTML div 的 innerHTML 部分中添加按钮?

iphone - IE8+ 中的最小宽度 CSS 媒体查询

html - 使下拉菜单在单击时向下推送内容

javascript - Javascript 无法识别 HTML 表单输入?

Java : reference one form from another form to append values

javascript - 缩放 iframe 的内容以供预览

jquery - 具有垂直约束的 float 滚动 Div

css - 页面用中心技术切断