Подтвердить что ты не робот

Как центрировать изображение по горизонтали и выровнять его до нижней части контейнера?

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

Я смог центрировать изображение по горизонтали сам. Я также смог выровнять нижнюю часть контейнера. Но я не мог одновременно делать это одновременно.

Вот что у меня есть:

.image_block {
    width: 175px;
    height: 175px;
    position: relative;
    margin: 0 auto;
}
.image_block a img {
position: absolute;
bottom: 0;
}

<div class="image_block">
    <a href="..."><img src="..." border="0"></a>
</div>

Этот код выравнивает изображение в нижней части div. Что мне нужно добавить/изменить, чтобы он также центрировал изображение по горизонтали внутри div? Размер изображения неизвестен раньше, но он будет 175x175 или меньше.

4b9b3361

Ответ 1

.image_block    {
    width: 175px;
    height: 175px;
    position: relative;
}

.image_block a  {
    width: 100%;
    text-align: center;
    position: absolute;
    bottom: 0px;
}

.image_block img    {
/*  nothing specific  */
}

пояснение: элемент, расположенный абсолютно, будет относиться к ближайшему родительскому объекту, который имеет нестатическое позиционирование. Я предполагаю, что вы довольны тем, как отображается ваш .image_block, поэтому мы можем оставить относительное позиционирование там.

как таковой, элемент <a> будет располагаться относительно .image_block, что даст нам выравнивание внизу. то мы text-align: center элемент <a> и дадим ему 100% ширину, чтобы он был размером .image_block.

<img> внутри <a> затем центрируется соответствующим образом.

Ответ 2

Это также работает (был сделан намек на это question)

.image_block {
  height: 175px;
  width:175px;
  position:relative;
}
.image_block a img{
 margin:auto; /* Required */
 position:absolute; /* Required */
 bottom:0; /* Aligns at the bottom */
 left:0;right:0; /* Aligns horizontal center */
 max-height:100%; /* images bigger than 175 px  */
 max-width:100%;  /* will be shrinked to size */ 
}

Ответ 3

не будет

margin-left:auto;
margin-right:auto;

добавлен в .image_block a img сделать трюк?
Обратите внимание, что это не будет работать в IE6 (возможно, 7 не уверены)
там вам нужно будет сделать .image_block контейнер Div

text-align:center;

position:relative; также может быть проблемой.

Ответ 4

Это сложно. причина, по которой это не удается, заключается в том, что вы не можете позиционировать с помощью поля или выравнивания текста при абсолютно позиционированном.

Если изображение одного в div, я рекомендую что-то вроде этого:

.image_block {
    width: 175px;
    height: 175px;
    line-height: 175px;
    text-align: center;
    vertical-align: bottom;
}

Возможно, вам придется придерживаться вызова vertical-align на изображении; не совсем уверен, не тестируя его. Использование vertical-align и line-height будет относиться к вам намного лучше, чем пытаться обходиться с абсолютным позиционированием.

Ответ 5

Удалите строку position: relative;. Я не уверен, почему именно, но он исправляет это для меня.

Ответ 6

Вы пробовали:

.image_block{
text-align: center;
vertical-align: bottom;
}

Ответ 7

#header2
{
   display: table-cell;
   vertical-align: bottom;
   background-color:Red;
}


<div style="text-align:center; height:300px; width:50%;" id="header2">
<div class="right" id="header-content2">
  <p>this is a test</p>
</div>
</div>