2014-03-28 29 views

回答

1

因爲你的文字都在單獨的div,這2周的div應該具有相同的高度,那麼我們就必須相應地改變vertical-align這樣的:

<div style="display:inline-block; float:left; height: 30px;"> 
    text 
</div> 
<div style="display:inline-block; float:left; height:30px;"> 
    <select> 
     <option>select 
     </option> 
    </select>    
</div> 

div:before { 
content:''; 
display:inline-block; 
height:100%; 
vertical-align:middle; 
} 

這裏是fiddle

+0

我認爲這是正確的解決方案,但我不知道我的理解。我們在每個div之前插入一個隱藏的元素來欺騙垂直對齊? – allenylzhou

+0

@allenylzhou類似的東西,但正如我所說的2個div需要有相同的高度,或者你可以找到另一種方式,其中2個div將另一個div作爲同一個容器,然後將垂直對齊應用到2個div –

+0

@allenylzhou使用'float'就像你做的那樣是你問題的原因,'float'會將元素從文檔流中取出來,並且你不能控制它們的對齊方式,將它們設置爲相同的高度只是一個把戲,所以你可以嘗試另一種方法,如不要使用浮動... –

0

用這樣的跨度標籤包裝文本:

<span>text</span> 

然後樣式像這樣:

span { 
    display: inline-block; 
    vertical-align: middle; 
} 

編輯:Fiddle

+0

這似乎與我的例子一起工作。但一般不起作用。我只需稍微增加select元素的大小,它就會再次失調。 – allenylzhou