在爲<li>
提供的樣式中,正在使用float
屬性。當浮動元素時,它將從頁面上的元素佈局的一般流程中移除。這意味着,在您的示例中,每個<li>
實際上都是浮動在包含它們的無序列表的邊界之外,並且每個都恰好是所包含圖像的高度和寬度。在這種情況下,vertical-align
屬性沒有任何對齊的地方。
下面是一個演示此問題的簡單示例。請注意,以模擬不同高度的圖像,我已經給每個<img>
不同height
值(CSS)。爲了能看到什麼是在渲染過程中真正發生的事情,我還增加了每個<li>
周圍的邊框和<ul>
標籤。
<html>
<head>
<style>
li { float:left; margin:2px 4px; padding:0; border: solid 1px black; }
ul { border: solid 1px black; }
</style>
</head>
<body>
<ul id="sponsors">
<li><img style="height: 150px; width: 50px" src=.../></li>
<li><img style="height: 50px; width: 50px" src=.../></li>
<li><img style="height: 75px; width: 50px" src=.../></li>
</ul>
</body>
</html>
希望這澄清了問題。
你可以嘗試在<li>
使用display: inline
,而不是浮動它們。
<html>
<head>
<style>
ul { list-style: none; border: solid 1px black; }
li { display: inline; border: solid 1px black; }
img { vertical-align: bottom; }
</style>
</head>
<body>
<ul id="sponsors">
<li><img style="height: 150px; width: 50px" src=.../></li>
<li><img style="height: 50px; width: 50px" src=.../></li>
<li><img style="height: 75px; width: 50px" src=.../></li>
</ul>
</body>
</html>
你可以把這個放在jsfiddle.net上,這樣我們都可以擺弄它嗎? – adarshr 2011-03-16 15:17:18
絕對!去http://jsfiddle.net/LhM9X/ – Kyle 2011-03-16 15:21:38