Центрирование фонового изображения с использованием CSS - PullRequest
130 голосов
/ 15 апреля 2010

Я хочу центрировать фоновое изображение. Div не используется, это стиль CSS :

body{
    background-position:center;
    background-image:url(../images/images2.jpg) no-repeat;
}

Вышеприведенные CSS-элементы разбиты на части и центрируют их, но половина изображения не видна, она просто движется вверх. То, что я хочу сделать, это центрировать изображение. Могу ли я принять изображение для просмотра даже на 21 "экране?

Ответы [ 12 ]

266 голосов
/ 15 апреля 2010
background-image: url(path-to-file/img.jpg);
background-repeat:no-repeat;
background-position: center center;

Это должно сработать.

Если нет, то почему бы не сделать div с изображением и использовать z-index, чтобы сделать его фоном? Это было бы намного легче центрировать, чем фоновое изображение на теле.

Кроме этой попытки:

background-position: 0 100px;/*use a pixel value that will center it*/ Или я думаю, что вы можете использовать 50%, если вы установили ваше тело min-height на 100%.

body{

    background-repeat:no-repeat;
    background-position: center center;
    background-image:url(../images/images2.jpg);
    color:#FFF;
    font-family:Arial, Helvetica, sans-serif;
    min-height:100%;
}
18 голосов
/ 18 декабря 2012

Я использую этот код, он хорошо работает

html, body {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
  background: black url(back2.png) center center no-repeat;;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
15 голосов
/ 12 февраля 2014

Я думаю это - это то, что нужно:

body
{
    background-image:url('smiley.gif');
    background-repeat:no-repeat;
    background-attachment:fixed;
    background-position:center;
} 
7 голосов
/ 15 апреля 2010

Попробуйте

background-position: center center;
4 голосов
/ 05 апреля 2018

Как это:

background-image:url(https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Dore_woodcut_Divine_Comedy_01.jpg/481px-Dore_woodcut_Divine_Comedy_01.jpg);
background-repeat:no-repeat;
background-position: center;
background-size: cover;

html{
height:100%
}

body{
background-image:url(https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Dore_woodcut_Divine_Comedy_01.jpg/481px-Dore_woodcut_Divine_Comedy_01.jpg);
background-repeat:no-repeat;
background-position: center;
background-size: cover;
}
3 голосов
/ 15 апреля 2010

В вашем коде есть ошибка. Вы используете сочетание полного синтаксиса и сокращенной записи в свойстве background-image. Это приводит к тому, что no-repeat игнорируется, поскольку это недопустимое значение для свойства background-image.

body{   
    background-position:center;
    background-image:url(../images/images2.jpg) no-repeat;
}

Должен стать одним из следующих:

body{
    background:url(../images/images2.jpg) center center no-repeat;
}

или

body
{
    background-image: url(path-to-file/img.jpg);
    background-repeat:no-repeat;
    background-position: center center;
}

РЕДАКТИРОВАТЬ: Для проблемы масштабирования изображения, вы можете посмотреть ответ на этот вопрос .

2 голосов
/ 29 сентября 2014
background-repeat:no-repeat;
background-position:center center;

Не центрирует фоновое изображение по вертикали при использовании html 4.01 «СТРИКТ» doctype.

Добавление:

background-attachment: fixed;

Должна решить проблему

(значит, Александр прав)

2 голосов
/ 03 сентября 2013

Попробуйте это background-position: center top;

Это поможет вам.

0 голосов
/ 05 апреля 2017

просто замените

background-image:url(../images/images2.jpg) no-repeat;

с

background:url(../images/images2.jpg)  center;
0 голосов
/ 23 июля 2016

Была такая же проблема. Использовал свойства display и margin и все заработало.

.background-image {
  background: url('yourimage.jpg') no-repeat;
  display: block;
  margin-left: auto;
  margin-right: auto;
  height: whateveryouwantpx;
  width: whateveryouwantpx;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...