Я, как правило, делаю это на каждом веб-сайте, который я создаю, но я все же действительно нахожу настоящий хороший способ сделать это. Обычно компания дает мне свой логотип, я сосредотачиваю его на середине экрана, когда вы переходите на страницу, а затем автоматически пересылаете вас на домашнюю страницу. Я не могу найти хороший способ центрировать изображение в середине экрана без кучи столов и divs! Любые хорошие предложения?!
Центральное изображение вертикальное и горизонтальное
Ответ 1
Вы можете попробовать использовать div
в своем HTML, например:
<div id='dv'></div>
И используя фоновое изображение, подобное этому:
#dv {
background: url('http://pieisgood.org/images/slice.jpg') no-repeat 0 0;
background-position: center;
}
html,body,#dv { /* so that the #dv can fill up the page */
width:100%;
height:100%;
}
Fiddle
Ответ 2
Лично мне нравится использовать метод display: table-cell
.
Например, если мой HTML:
<div class="wrapper">
<img src="http://placehold.it/150x50" alt="Company ABC" />
</div>
Тогда мой CSS должен быть:
div.wrapper {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 600px;
height: 200px;
}
Если я не могу использовать вышеупомянутый метод, другой жизнеспособный вариант заключается в использовании свойства line-height
.
HTML для метода line-height:
<div class="wrapper">
<img src="http://placehold.it/150x50" alt="Company XYZ" />
</div>
CSS для метода line-height:
img {
line-height: 300px;
}
Ответ 3
Вы можете использовать JavaScript для вычисления центральной точки и поместить ее как с краем, так и сверху (с положением: относительный/абсолютный), но это не очень чисто.
Я предполагаю, что вы говорите о всплывающей странице, так что вот простой пример (хотя в других случаях я не рекомендую изменять тег body
, как я это сделал):
<!doctype html>
<html>
<head>
<title>blah</title>
<style type="text/css">
html,body {margin:0;padding:0;width:100%;height:100%;}
body {display:table;}
p {display:table-cell;text-align:center;vertical-align:middle;}
</style>
</head>
<body>
<p>Hello World - This could have an image in it</p>
</body>
</html>
Фокус в CSS:
- Элемент, который вы хотите центрировать как по горизонтали, так и по вертикали, отображается как ячейка таблицы:
display:table-cell
- Родитель (контейнер) элемента, который вы хотите центрировать, отображается в виде таблицы:
display:table
- Убедитесь, что элемент отображения таблицы потребляет всю область, против которой вы хотели бы центрировать.
- Элемент, который вы хотите центрировать, должен быть выровнен по горизонтали (объявление
text-align:center
) и вертикально (vertical-align:middle
Объявление) - Свойства
text-align
иvertical-align
работают только особым образом, поскольку элемент отображается какtable-cell
Ответ 4
Вы не скажете, известен ли размер изображения.
Есть несколько способов сделать это, я предпочитаю некоторые CSS, например, на изображении с id="centreme"
(если изображение 200x200) и оберткой для всей страницы
div#contentwrapper {
width:100%;
height:100%;
position:relative;
}
img#centreme {
position: relative;
width: 200px; /* the image width */
height: 200px; /* the image height */
top: 50%;
left: 50%;
margin-top: -100px; /* half the image height */
margin-left:-100px; /* half the image width */
}
скрипка для игры с http://jsfiddle.net/7PYzB/2/
Ответ 5
img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%); /* IE 9 */
-webkit-transform: translate(-50%, -50%); /* Chrome, Safari, Opera */
}
<body>
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRMtBiLioXqfhufpptex_ta8kGJa5UDQS3aITpBetR8EwH5GGDTJw" />
</body>