如何垂直对齐两个div中的元素?

时间:2013-04-05 06:53:39

标签: javascript html css

enter image description here

<div id="div1">

    <label class="someClass1">Price 1</label>
    <label class="someClass1">Price 2</label> 
    <label class="someClass1">Price 3</label> 
    <label class="someClass1">Price 4</label> 
</div>
<div id="div2">
    <input type="text" class="someClass2"/>
    <input type="text" class="someClass2"/>
    <input type="text" class="someClass2"/>
    <input type="text" class="someClass2"/>
</div>

我有两个div。一个div包含<label>个元素,另一个div包含<input>个元素。两个div是水平对齐的。我需要垂直对齐标签和输入元素,以便每个标签都在下方输入。

我可以通过将<label><input>元素放在<table>行/列中来实现上述要求。但我要求他们使用<div>

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

简短回答,试试这个CSS

#div1 label.someClass1 { display: inline-block; margin: 0 5px; }
#div1 label.someClass1, #div2 input.someClass2 { width: 100px; }
#div2 input.someClass2 { margin: 0 0 0 10px; }

详尽的回答,为了使您在问题中看到的确切外观,请使用HTML5占位符属性和CSS3 border-radius:

#div1 label {
  display: inline-block;
  font-weight: bold;
  margin: 0 5px;
}
#div1 label, #div2 input {
  width: 100px;
}
#div2 input {
  border-radius: 5px; -webkit-border-radius: 5px;
  border-width: 1px;
  padding: 2px;
  margin: 0 0 0 10px; 
}

<div id="div1">
    <label>Price 1</label>
    <label>Price 2</label> 
    <label>Price 3</label> 
    <label>Price 4</label> 
</div>
<div id="div2">
    <input type="text" placeholder="Price"/>
    <input type="text" placeholder="Price"/>
    <input type="text" placeholder="Price"/>
    <input type="text" placeholder="Price"/>
</div>

要微调CSS3效果,请参阅css3generator

答案 1 :(得分:1)

要将div放在同一行,输入低于它们,请使用以下css

#div1 label { display: inline-block; }
#div1 label, #div2 input { width: 100px; }

在此处查看演示http://jsfiddle.net/2wdUT/

答案 2 :(得分:0)

没有css,你可以通过使用这样的HTML结构来实现它 -

    <div id="div1">
      <label class="someClass1">Price 1</label>
      <div><input type="text" class="someClass2"/></div>
    </div>
    <div id="div2">
      <label class="someClass1">Price 2</label> 
      <div><input type="text" class="someClass2"/></div>
    </div>
    <div id="div3">
      <label class="someClass1">Price 3</label>  
      <div><input type="text" class="someClass2"/></div>
    </div>
    <div id="div4">
      <label class="someClass1">Price 4</label> 
      <div><input type="text" class="someClass2"/></div>    
    </div>