如何在CSS中并排获得两个表单字段,每个字段的标签位于字段上方?

sea*_*987 18 html css

我被困在弄清楚一些CSS,我需要我的表格的一部分看起来如下,

CSS向左浮动

我试过了我能想到的每一个变化,

我给标签一个固定的宽度并将它们向左浮动,然后给出相同宽度的输入并将它们向左浮动.

我完全没有想法,我怎么能实现这个目标呢?

Sco*_*own 13

<form>
  <label for="company">
    <span>Company Name</span>
    <input type="text" id="company" />
  </label>
  <label for="contact">
    <span>Contact Name</span>
    <input type="text" id="contact" />
  </label>
</form>

label { width: 200px; float: left; margin: 0 20px 0 0; }
span { display: block; margin: 0 0 3px; font-size: 1.2em; font-weight: bold; }
input { width: 200px; border: 1px solid #000; padding: 5px; }
Run Code Online (Sandbox Code Playgroud)

图为http://jsfiddle.net/H3y8j/

  • 好的,谢谢你的解释,我同意它不是很干净,但它以清晰和相对语义的方式实现了OP的要求.但投票结果如何?!当它被接受的答案时几乎不清楚或有用,你承认它在技术上没有任何错误. (3认同)

Pau*_*ite 13

您需要为布局中的每个列添加一个HTML元素.

我建议:

HTML

<div class="two-col">
    <div class="col1">
        <label for="field1">Field One:</label>
        <input id="field1" name="field1" type="text">
    </div>

    <div class="col2">
        <label for="field2">Field Two:</label>
        <input id="field2" name="field2" type="text">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.two-col {
    overflow: hidden;/* Makes this div contain its floats */
}

.two-col .col1,
.two-col .col2 {
    width: 49%;
}

.two-col .col1 {
    float: left;
}

.two-col .col2 {
    float: right;
}

.two-col label {
    display: block;
}
Run Code Online (Sandbox Code Playgroud)


nic*_*ico 5

这很好用

http://jsfiddle.net/aY9HC/

  • 除了你应该使用标签而不是div:http://jsfiddle.net/aY9HC/1/ (2认同)