Как сделать центр изображения (вертикально и горизонтально) внутри большего элемента - PullRequest
388 голосов
/ 23 декабря 2008

У меня есть div 200 x 200 px. Я хочу разместить изображение размером 50 x 50 px прямо в середине div.

Как это можно сделать?

Я могу расположить его по центру по горизонтали, используя text-align: center для div. Но вертикальное выравнивание является проблемой ..

Ответы [ 36 ]

0 голосов
/ 12 мая 2015

Простое и элегантное решение, которое работает для меня всегда:

<div>
    <p style="text-align:center"><img>Image here</img></p>
</div>
0 голосов
/ 24 сентября 2016

Вот попробуй это.

.parentdiv {
 height: 400px;
 border: 2px solid #cccccc;
  background: #efefef;
 position: relative;
}
.childcontainer {
 position: absolute;
 left: 50%;
 top: 50%;
}
.childdiv {
 width: 150px;
 height:150px;
 background: lightgreen;
 border-radius: 50%;
 border: 2px solid green;
 margin-top: -50%;
 margin-left: -50%;
}
<div class="parentdiv">
  <div class="childcontainer">
     <div class="childdiv">
     </div>
  </div>
</div>
0 голосов
/ 23 декабря 2008

Если вы знаете размер родительского элемента div и изображения, вы можете просто использовать абсолютное позиционирование.

0 голосов
/ 15 июля 2016

Просто установите автоматический запас поля изображения, как показано ниже.

img{
 margin:auto;
 width:50%;
 height:auto;
}

Отметьте пример

0 голосов
/ 14 апреля 2016

https://www.w3.org/Style/Examples/007/center.en.html

IMG.displayed {
  display: block;
  margin-left: auto;
  margin-right: auto 
}

<IMG class="displayed" src="..." alt="...">
0 голосов
/ 26 февраля 2016

Лучший способ отцентрировать изображение по вертикали и горизонтали, это использовать два контейнера и применить следующие свойства:

Внешний контейнер

  • должно иметь display: table;

Внутренний контейнер

  • должен иметь display: table-cell;
  • должен иметь vertical-align: middle;
  • должен иметь text-align: center;

Демо

.outer-container {
    display: table;
    width: 80%; /* can be any width */
    height: 120px; /* can be any height */
    background: #ccc;
}

.inner-container {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

.inner-container img {
    background: #fff;
    padding : 10px;
    border : 1px solid #000;
}
<div class="outer-container">
   <div class="inner-container">
     <img src="http://s.gravatar.com/avatar/bf4cc94221382810233575862875e687?r=x&s=50" />
   </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...