html - 如何使用 CSS 自动调整表单元素的宽度?

标签 html css

最近我在单一情境问题上经历了很多次:

我在网络公式中有一个文本输入元素在定义宽度的更大 div 中

在那个更大的 div 中,我将放置一个跨度文本,例如“姓名:”,然后我将放置输入

我希望 auto 的输入变得与 span 未使用的 div 的空间一样宽

代码应该是这样的:

<div>
    <span>Name:</span>
    <input type="text" name="name" />
</div>

还有 CSS:

div {
   width: 200px;
   display: block;
}

span {
   display: inline-block;
   font: 11px 'Lucida Sans', Verdana, Arial;
}

input {
   height: 20px;
   width: auto;
   display: block;
}

我一直在做一些研究,但我似乎无法找到解决这个问题的精确方法。

到目前为止,我一直在通过为每个元素定义不同宽度的内联样式来跳过这个问题。但如果我更改字体、大小或其他任何内容,它就会爆炸。

我不喜欢 build 一堵堡垒墙,然后给狙击手留下千疮百孔。这就是我寻求帮助的原因:)

如果你们有任何建议、解决方案或解决方法,我很乐意知道。 =D 谢谢。

最佳答案

从语义上讲,为此目的使用 label 标签更好:

<label>Name:</label>

关于你的问题,看一下CSS3柔性盒模型:http://hacks.mozilla.org/2010/04/the-css-3-flexible-box-model/

或者如果您更喜欢视频:http://www.youtube.com/watch?v=-OubGOxKa5I

在撰写本文时,Mozilla 和 Webkit 支持此功能,并且有其他浏览器的回退:https://github.com/doctyper/flexie

关于html - 如何使用 CSS 自动调整表单元素的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5411610/

相关文章:

php - 如何像搜索框一样跳转到 PHP 页面的某个部分?

javascript - Fullpage.js 不会在任何浏览器(chrome、firefox、edge)中滚动

css - SASS Mixin 未产生预期结果

css - Angular mat-form-field textArea 无法启用水平调整大小

javascript - SlidesJS 自动高度问题

css - TinyMCE - 默认样式

javascript - jQuery - 获取不同 div 级别中最接近的元素

html - iOS Safari 上 Pinterest 的自定义 URL 方案以打开板 URL?

html - Div 输入 float 表格内容

css - Bootstrap 3 NavBar 移动链接下划线向上