2013-04-05 5 views
3

enter image description hereКак вертикально выровнять элементы в двух div?

<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 содержит <label> элементов, а другой div содержит <input> элементов. Два divs выровнены по горизонтали. Мне нужно выровнять метки и элементы ввода по вертикали, чтобы каждая метка имела вход под ним.

Я могу достичь вышеуказанного требования, поставив <label> и <input> элементов, поместив их в <table> строк/столбцов. Но я требую, чтобы они использовали <div>.

Может ли кто-нибудь помочь мне в этом?

+0

Будут ли эти две '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' – Passerby

+0

@Passerby: Я не определил фиксированную ширину для div. Нужно ли мне ?? –

+0

Тогда можно ли указать фиксированную ширину как на '' '' '' '' '' '' '' '' '' '' '' '' ', как ответить Яна? – Passerby

ответ

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 границы радиуса:

#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

+0

Вертикальное выравнивание все еще не идеально. –

+0

Просто примечание, это не будет работать на IE8 и ниже. – Vucko

+0

@ManojShrestha: Я обновил свой ответ –

1

Чтобы получить дивы на одном ряду с входами под ними, используйте ниже CSS

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

Check Demo здесь http://jsfiddle.net/2wdUT/

+0

Вертикальное выравнивание по-прежнему не идеальное. –

+0

@ JanTuroň Я думаю, что это, возможно, было добросовестным усилием, чтобы дать ответ, улучшившись на вашем. Это правильный ответ. Комментарий к вашему ответу тоже был бы уместным. См. Также мой комментарий к харишнанам ниже. –

+1

@harishannam Будьте осторожны с копированием из ответа другого человека. Я понимаю, что вы сделали небольшую коррекцию, и это веская причина, чтобы опубликовать свой собственный ответ. Когда вы делаете это, с такими незначительными корректировками, обычно полезно включить примечание о том, что вы берете информацию о своей базе с сообщения другого пользователя. –

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> 
+0

Я не могу этого сделать. Мне нужно динамически вставлять метки и элементы ввода. Все, что у меня есть, это только два divs, выровненных по горизонтали. –

+0

Это вертикальное расположение, и OP хочет горизонтального расположения. – GeekyCoder

Смежные вопросы