2010-11-24 1 views
1

Я просто хочу разместить изображения в контейнере с фиксированной высотой: изображения не должны превышать высоту контейнера и должны быть центрированы по вертикали.vertical-align: средний не работает должным образом

Так что я

<div id="partenaires"> 
    <img src="images/partenaires/Debian.png" alt="Debian" /> 
    <img src="images/partenaires/Fedora.png" alt="Fedora" /> 
    ... 
</div> 

с

#partenaires { 
    height:3em; 
    line-height:3em; 
    white-space:nowrap; 
    overflow:hidden; 
    clear:both; 
} 
#partenaires img { 
    vertical-align:middle; 
    margin:0 1em; 
    max-height:100%; 
} 

Но оказывается большие изображения обрезаются на дно, как это (для всех браузеров), потому что vertical-align:

alt text

Как я должен делать то, что хочу? Я действительно не понимаю этого поведения ...

Заранее спасибо!

EDIT: вы можете попробовать все, что хотите here!

+1

`высота: 3em; переполнение: hidden` делает это несколько ожидаемым, я думаю. Можете ли вы удалить правило переполнения? – 2010-11-24 08:21:42

+0

К сожалению нет, я использую его для реализации слайдера. Но я уверен, что высота изображений действительно такова, что контейнер, они просто не центрированы по вертикали! – MatTheCat 2010-11-24 08:25:44

+0

@ Что происходит, если вы удалите `line-height`? – 2010-11-24 08:26:22

ответ

4

Я думаю, вы должны использовать значение высоты строки 2.7em, потому что линии имеют дополнительное пространство выше и ниже них, поэтому высота строки 3em не будет вписываться в div высоты 3em, поэтому ваши изображения обрезаются.

Редактировать: 2.78 кажется хорошим.

1

вы можете использовать align = "absmiddle", а не вертикально-выровнять: middle;

Надеется, что это поможет

0

vertical-align:baseline; работает, как ожидалось (примечание: я попытался только на Safari и FF) или удалить overflow:hidden из контейнера (если вы определили для очистки цели просто изменить очистной метод)