2016-06-19 177 views
1

我已經搜索了SO,知道如何垂直對齊輸入元素在div中。這個div在一個表單裏面。大多數問題,表單元素都有很多<div>的每個元素或<br>標籤。對齊垂直輸入元素div

Vertically aligning input elements

Vertical align with my inputs

我做了這個CSS一個fiddle

.fillform{ 
position: relative; 
width: 100%; 
height: 33%; 
bottom: 0; 
background: rgba(225, 43, 50, 1.0); 
} 

.fillform div{ 
position: absolute; 
float: left; 
width: 100%; 
height: 200px; 
box-sizing: border-box; 
border: 2px solid rgba(0,0, 255, 1.0); 
} 

.fillform div input{ 
float: left; 
display: inline-block; 
border: 2px solid rgba(255, 0, 0, 1.0); 
box-sizing: border-box; 
vertical-align: middle; 
} 

輸入元素不能垂直對齊,並有利潤?

編輯:我不會用表或display: table-cell;

+0

刪除輸入上的「float:left」,只要讓我在自然流量中輸入 –

+0

@ArnaudGueras它不起作用。你自己看。刪除浮動:從輸入左側,他們只是獲得空間 – learner

+1

刪除'float:left;'並添加'display:list-item;'這裏是[更新的jsFiddle](https://jsfiddle.net/dmb3q6gz/1/ ) –

回答

2

將此規則更改爲:

.fillform div input{ 
    display: block; 
    border: 2px solid rgba(255, 0, 0, 1.0); 
    box-sizing: border-box; 
    vertical-align: middle; 
} 

https://jsfiddle.net/m9ev8etj/

0

添加position: relative;top: 50%;margin: 1px;.fillform div input類,並嘗試這個辦法:

.fillform{ 
    width: 100%; 
    height: 33%; 
    bottom: 0; 
    background: rgba(225, 43, 50, 1.0); 
} 

.fillform div{ 
    float: left; 
    width: 100%; 
    height: 200px; 
    box-sizing: border-box; 
    border: 2px solid rgba(0,0, 255, 1.0); 
} 

.fillform div input{ 
    float: left; 
    border: 2px solid rgba(255, 0, 0, 1.0); 
    box-sizing: border-box; 
    position: relative; 
    top: 50%; 
    margin: 1px; 
} 
+1

Emre提供的解決方案解決了這個問題:https://jsfiddle.net/dmb3q6gz/1/ – learner