2013-07-24 3 views
0

Как я могу использовать jQuery для добавления стиля, который вертикально центрирует изображения в определенном div, когда каждое изображение имеет разные размеры?Вертикально центральные изображения с разной высотой

Если все изображения были на той же высоте, я бы просто использовать margin-top:-<half the height of the image>px, но так как я не знаю высоты я немного застрял

+0

Отвечает ли мой ответ на ваш вопрос? –

ответ

0

Два решения: - поставить измерение высоты внутри тега IMG - создать загрузчик изображения, когда будут загружены все изображения называют функцию изменения размера

+0

Эстетическая информация о разметке, как правило, не-нет, и это решение действительно может использовать некоторые дополнительные объяснения. –

0

Я предпочитаю метод CSS:

#item{ 
    background: url('some/url/img.jpg') center center; 
} 

Offcourse вы можете изменить центры влево/вправо/верх/боты Том (и я считаю, что есть середина). Нет расчетливый или сложно JavaScript/CSS или неаккуратно/труднодоступные не понимаю код :)

Some info about background-position on W3C

+0

Первоначально я начинал с этого, но проблема возникает, когда изображение не так широко, как браузер имеет границы с обеих сторон. –

+0

Этого не было в вашей теме: P А также, если это так, изображение обычно. Если вы не хотите растягивать размеры, чего я стараюсь избегать как можно больше – Martijn

+0

@DeanElliott ~ Если вы планируете удалять поддерживающие браузеры, вы можете исправить это, указав ['background-size: 100%;'] (https://developer.mozilla.org/en-US/docs/Web/CSS/background-size). –

0
vertical-align:middle; 

делает то, что вы хотите сделать.

Здесь с помощью метода CSS,

http://jsfiddle.net/m8mNf/4/

Здесь с помощью метода JQuery,

http://jsfiddle.net/cq2S8/351/

Пример использования JQuery.

<html> 
<head> 
<title>Center my iamges</title> 
<style> 
body { 
    padding:0;margin:0; 
} 
</style> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script> 
$(function(){ 
    $("img").css('vertical-align','middle'); 
}); 
</script> 
</head> 
<body> 
<div> 
    Hello 
    <img src="http://images2.fanpop.com/image/photos/13900000/The-Rose-of-Love-roses-13967150-1024-768.jpg" width="60" height="50"> 
    <img src="http://images2.fanpop.com/image/photos/13900000/The-Rose-of-Love-roses-13967150-1024-768.jpg" width="60" height="80"> 
</div> 
</body> 
</html> 

Надеюсь, это поможет.

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