Как разместить изображение в центре/середине как по вертикали, так и по горизонтали
<div id="photo_leftPanel" style="float: left; width: 604px; position: relative;">
<img src="bla.jpg">
</div>
Как я могу сделать изображение, начиная с середины этого окна? (средний и вертикальный и горизонтальный)
Ответы
Ответ 1
Существует несколько способов сделать это, и если это необходимо для работы во всех браузерах (IE7 + и остальное), вам нужно сделать разные вещи, чтобы заставить его работать в некоторых случаях.
-
Используйте абсолютную позицию. Это работает, только если вы знаете размер изображения.
Здесь вы устанавливаете его на position: absolute; left: 50%; top: 50%; margin: -<half height of image> 0 0 -<half width of image>
.
См. пример здесь: http://jsfiddle.net/JPch8/
-
Используйте margin: 0 auto;text-align: center;
и line-height/font-size
.
Это немного сложнее, так как высота строки не работает, как это должно быть в IE для элементов встроенного блока, таких как изображения. Это где размер шрифта входит.
В основном, вы устанавливаете высоту линии изображения в контейнере так же, как высота контейнера. Это будет вертикально выровнять встроенные элементы, но в IE вам нужно установить размер шрифта, чтобы он работал.
См. пример здесь: http://jsfiddle.net/JPch8/2/
-
В современных браузерах, поддерживающих display: flex
, вы можете сделать это, просто установив div контейнера на display: flex; align-items: center; justify-content: center;
См. пример здесь: https://jsfiddle.net/ptz9k3th/
Ответ 2
"float:left; position:relative
", вероятно, не работает должным образом. Плавающие элементы считаются абсолютными.
Чтобы получить изображение по вертикали, вам нужна высота на div, и вам нужна высота на нем. (Центрирование по вертикали - это боль). Мой пример ниже будет работать, если это ваши единственные элементы, но имейте в виду, что height: 100%
в контейнерах, скорее всего, повлияет на остальную часть вашего макета.
<html>
<head><title></title>
<style type="text/css">
html, body {
height: 100%;
}
#photo_leftPanel {
height: 500px; /*guessing*/
width: 604px;
float: left;
}
#photo_leftPanel img {
margin: auto;
vertical-align: middle;
}
</style>
</head>
<body>
<div id="photo_leftPanel">
<img src="bla.jpg" />
</div>
</body>
</html>
Ответ 3
поместите изображение в <div>
с помощью text-align:center;
без указания размера окна
<div class="picture_div" style="margin:0px auto; text-align:center;">
<img src="media/BezierCurve.gif" />
</div>
в качестве альтернативы вы можете указать width
и height
в поле <div>
, чтобы центрировать изображение (на самом деле это поле div).
<div id="blue" style="border:1px solid blue; width:100px; height:100px; margin:10px auto;">
<img src="media/BezierCurve.gif" />
</div>
Ответ 4
Надеюсь, я понимаю, чего вы пытаетесь достичь.
<div id="photo_leftPanel" style="float: left; width: 604px; position: relative;">
<center><img src="bla.jpg" style="vertical-align:middle;"></center>
</div>