У меня есть div
<div id="over" style="position:absolute; width:100%; height:100%>
 <img src="img.png">
</div>
Как выровнять изображение так, чтобы оно находилось в центре и центре div?
У меня есть div
<div id="over" style="position:absolute; width:100%; height:100%>
 <img src="img.png">
</div>
Как выровнять изображение так, чтобы оно находилось в центре и центре div?
body {
  margin: 0;
}
#over img {
  margin-left: auto;
  margin-right: auto;
  display: block;
}<div id="over" style="position:absolute; width:100%; height:100%">
  <img src="http://www.garcard.com/images/garcard_symbol.png">
</div><div style="display:table-cell; vertical-align:middle; text-align:center">
<img src="img.png">
</div>
Это также можно сделать с помощью макета Flexbox:
СТАТИЧЕСКИЙ РАЗМЕР
.parent {
    display: flex;
    height: 300px; /* Or whatever */
    background-color: #000;
}
.child {
    width: 100px;  /* Or whatever */
    height: 100px; /* Or whatever */
    margin: auto;  /* Magic! */
}<div class="parent">
    <img class="child" src="https://i.vimeocdn.com/portrait/58832_300x300"/>
</div>Мне кажется, что вы также хотели, чтобы изображение было вертикально центрировано внутри контейнера. (Я не видел ответа, который при условии, что)
HTML
<div id="over">
    <span class="Centerer"></span>
    <img class="Centered" src="http://th07.deviantart.net/fs71/200H/f/2013/236/d/b/bw_avlonas_a5_beach_isles_wallpaper_image_by_lemnosexplorer-d6jh3i7.jpg" />
</div>
CSS
*
{
    padding: 0;
    margin: 0;
}
#over
{
    position:absolute;
    width:100%;
    height:100%;
    text-align: center; /*handles the horizontal centering*/
}
/*handles the vertical centering*/
.Centerer
{
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}
.Centered
{
    display: inline-block;
    vertical-align: middle;
}
  Примечание. это решение полезно для выравнивания любого элемента внутри любого элемента.
для IE7, применяя класс .Centered к элементам блока, вам придется использовать другой трюк, чтобы заставить работать inline-block. (что, поскольку IE6/IE7 не играют хорошо с встроенным блоком на элементах блока)
img.centered {
   display: block;
   margin: auto auto;
}
Вы можете сделать это легко с помощью свойства display: flex css
#over {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#over {position:relative; text-align:center; 
       width:100%; height:100%; background:#CCC;}
#over img{
    position: absolute;
    margin: auto;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
У меня все еще были проблемы с другим решением, представленным здесь. Наконец, это работало лучше всего для меня:
<div class="parent">
    <img class="child" src="image.png"/>
</div>
CSS3:
.child {
 display: block;
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 -webkit-transform: translate(-50%, -50%); /* Safari and Chrome */
 -moz-transform: translate(-50%, -50%); /* Firefox */
 -ms-transform: translate(-50%, -50%); /* IE 9 */
 -o-transform: translate(-50%, -50%); /* Opera */
 // I suppose you may like those too:
 // max-width: 80%;
 // max-height: 80%;
}
Подробнее об этом подходе можно прочитать на этой странице.
В принципе, установка правого и левого полей в автоматическое приведет к выравниванию по центру.
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png" style="display: block; margin: 0 auto;">
</div>
Это будет более простой подход
#over > img{
    display: block;
    margin:0 auto; 
}
установив img на display: inline-block, установив верхний div в text-align: center, выполнив задание
EDIT: тем людям, которые играют с дисплеем: inline-block → > , не забывайте, что, например, два divs типа
<div>Div1 content</div>NOSPACEHERE<div>Div2 content</div>
действительно нет промежутков между ними (как видно здесь).
Просто, чтобы избежать этих (встроенных блоков) пробелов между ними. Эти пробелы можно увидеть между каждыми двумя словами, которые я пишу прямо сейчас!:-) Так что.. надеюсь, это поможет некоторым из вас.
 ПРОСТО. 2018. FlexBox. Проверить поддержку браузера - могу ли я использовать 
 Минимальное решение: 
div#over { 
   display: flex; 
   justify-content: center; 
   align-items: center; 
}
 
 Чтобы получить максимально широкую поддержку браузера: 
div#over { 
   display: -webkit-flex;
   display: -ms-flex; 
   display: flex; 
   justify-content: center; 
   -ms-align-items: center; 
   align-items: center; 
}
Я пробовал много подходов, но только этот работает для нескольких встроенных элементов внутри контейнера div. Вот код для выравнивания всех в div в середине.
.divContainer
{
    vertical-align: middle;
    text-align: center; <!-- If you want horizontal center alignment -->
}
.divContainer > *
{
    vertical-align: middle;
}
<div class="divContainer">
    <span>Middle Text</span>
    <img src="test.png"/>
</div>
Пример кода здесь: https://jsfiddle.net/yogendrasinh/2vq0c68m/
Файл CSS
.over {
    display : block;
    margin : 0px auto;
Попробуйте этот минимальный код:
<div class="outer">
    <img src="image.png"/>
</div>
И CSS:
.outer{
  text-align: center;
}
.outer img{
  display: inline-block;
}
Ну, мы в 2016 году... почему бы не использовать flexbox? Он также реагирует. Наслаждаться.
#over{
display:flex;
align-items:center;
justify-content:center;
}<div id="over">
	<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>Многие ответы предлагают использовать margin:0 auto, но это работает только тогда, когда элемент, который вы пытаетесь центрировать, не плавает слева или справа, то есть атрибут float css не установлен. Для этого примените атрибут display к table-cell, а затем примените маркер слева и справа к авто, чтобы ваш стиль выглядел бы как style="display:table-cell;margin:0 auto;"
    <div>
    <p style="text-align:center; margin-top:0px; margin-bottom:0px; padding:0px;">
    <img src="image.jpg" alt="image"/>
    </p>    
    </div>
HTML:
<div id="over">
    <img src="img.png">
</div>
CSS
#over {
  text-align: center;
}
#over img {
  vertical-align: middle;
}
Для центра по горизонтали Просто поместите
#over img {
    display: block;
    margin: 0 auto;
    clear:both;
}
Другой метод:
#over img {
    display: inline-block;
    text-align: center;
}
Для центра по вертикали Just put:
   #over img {
           vertical-align: middle;
        }
Это сработало для меня:
#image-id {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    width: auto;
    margin: 0 auto;
}
Это помогло.
<div class="CenterImage">
         <asp:Image ID="BrandImage" runat="server" />
</div>
'Примечание: в этом случае класс CSS не ассоциируется с "BrandImage"
CSS
.CenterImage {
    position:absolute; 
    width:100%; 
    height:100%
}
.CenterImage img {
    margin: 0 auto;
    display: block;
}
Ответ Daaawx работает, но я думаю, что было бы чище, если бы мы исключили встроенный CSS.
body {
	margin: 0;
}
#over img {
	margin-left: auto;
	margin-right: auto;
	display: block;
}
div.example {
  position: absolute;
  width: 100%;
  height: 100%;
}<div class="example" id="over">
	<img src="http://www.garcard.com/images/garcard_symbol.png">
</div>Используйте позиционирование. Следующие работали для меня...
С увеличением до центра изображения (изображение заполняет div):
div{
    display:block;
    overflow:hidden;
    width: 70px; 
    height: 70px;  
    position: relative;
}
div img{
    min-width: 70px; 
    min-height: 70px;
    max-width: 250%; 
    max-height: 250%;    
    top: -50%;
    left: -50%;
    bottom: -50%;
    right: -50%;
    position: absolute;
}
Без масштабирования до центра изображения (изображение не заполняет div):
   div{
        display:block;
        overflow:hidden;
        width: 100px; 
        height: 100px;  
        position: relative;
    }
    div img{
        width: 70px; 
        height: 70px; 
        top: 50%;
        left: 50%;
        bottom: 50%;
        right: 50%;
        position: absolute;
    }
Отмеченный ответ для этого не выровняет изображение по вертикали. Подходящим решением для современных браузеров является flexbox. Гибкий контейнер можно настроить для выравнивания его элементов как по горизонтали, так и по вертикали.
<div id="over" style="position:absolute; width:100%; height:100%; display: flex; align-items: center; justify-content: center;">
    <img src="img.png">
</div>
Это сработало для меня, когда вы должны выровнять изображение по центру, и ваш родительский div с изображением покрывает весь экран. то есть высота: 100% и ширина: 100%
#img{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
}
Вы можете взглянуть на это решение:
Центрирование по горизонтали и вертикали изображения в поле
<style type="text/css">
.wraptocenter {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: ...;
    height: ...;
}
.wraptocenter * {
    vertical-align: middle;
}
.wraptocenter {
    display: block;
}
.wraptocenter span {
    display: inline-block;
    height: 100%;
    width: 1px;
}
</style>
<!--[if lt IE 8]-->
<style>
.wraptocenter span {
    display: inline-block;
    height: 100%;
}
</style>
<!--[endif]-->
<div class="wraptocenter"><span></span><img src="..." alt="..."></div>
Простым способом было бы создание отдельных стилей как для div, так и для изображения, а затем для их самостоятельного размещения. Скажем, если я хочу установить свою позицию изображения на 50%, тогда у меня будет код, который выглядит следующим образом.
#over{
  position:absolute;
  width:100%;
  height:100%;
}
#img{
  position:absolute;
  left:50%;
  right:50%;
}<div id="over">
 <img src="img.png" id="img">
</div>#over {
    display: table-cell; 
    vertical-align: middle; 
    text-align: center;
    height: 100px;
}
Измените значение высоты для ваших потребностей.
Это должно работать.
ВАЖНО ДЛЯ ТЕСТИРОВАНИЯ: Чтобы выполнить фрагмент кода, нажмите левую кнопку фрагмент кода RUN, затем нажмите правую ссылку Полная страница
#fader{
position:fixed;z-index: 10;
top:0;right:0;bottom:0;left:0;
opacity: 0.8;background: black;
width:100%;height:100%;
text-align: center;
}
.faders{display:inline-block;height:100%;vertical-align:middle;}
.faderi{display:inline-block;vertical-align:middle;}<div id="fader">
<span class="faders"></span>
<img class="faderi" src="https://i.stack.imgur.com/qHF2K.png" />
</div>