Центрування фонового зображення за допомогою CSS


148

Я хочу зосередити фонове зображення. Не використовується div, це стиль CSS :

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

Наведені вище фрагменти CSS і роблять їх по центру, але половина зображення не видно, вона просто рухається вгору. Я хочу зробити це зображення в центрі. Чи можу я прийняти зображення для перегляду навіть на екрані 21 "?


1
Тепер це залежало б від розміру зображення та розміру браузера, чи не так?
nikc.org

@nikc +1, я знаю, але потрібно знати, чи була робота
X10nD

Відповіді:


305
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%;
}

Він централізується, але відображає лише половину екрана, я б хотів, щоб у
stackoverflow

Ви можете зробити скріншот і завантажити його на свій сервер або на безкоштовний веб-сайт для розміщення зображень, як-от photobucket.com, або зробити тимчасовий приклад на www.jsfiddle.net та опублікувати посилання для нас. З того, що ви сказали, зображення має розмір 1600x1200, і більшість роздільних можливостей екрана не надто високі, спробуйте змінити розмір зображення для розміру. Наприклад, я використовую широкоекранний монітор розміром 1440x900.
Кайл

скріншот - imagevat.com/picview.php?ig=6179 Я не впевнений, як завантажувати зображення на jsfiddle, якщо ви можете мені там допомогти jsfiddle.net/yWrQP
X10nD

Щоб додати зображення до jsfiddle, просто використовуйте повний http-шлях EX: background-image:url(http://www.myurl.com/images/image.jpg);помістіть його в CSS.
Кайл

У мене немає сервера для цього, але я використовував сайт для розміщення зображень, але все-таки перевірити це зараз
X10nD

20

Я використовую цей код, він добре працює

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;
}

Дякую! Я навіть не знав, що існують різні декларації для вебкітів тощо ...
Майк Рападас,

Привіт Вікторе, я багато використовував ваш код, але, схоже, зараз він не працює. Я додав фонове вкладення: виправлено; але він не працює на моєму браузері iPad ...
Вадим

Однак -webkit-background-sizeіснує лише зі спеціальних декларацій.
BigBang1112

16

Я думаю, що саме цього потрібно:

body
{
    background-image:url('smiley.gif');
    background-repeat:no-repeat;
    background-attachment:fixed;
    background-position:center;
} 

6
background-attachment виправив проблему для мене;)
хтоteu

7

Спробуйте

background-position: center center;

Як працює центр подвійного центру? Так чи інакше це питання не вирішує, все одно
X10nD

1
@Jean: подивіться на характеристики, фон-позиція насправді може приймати 2 значення (горизонтальне та вертикальне). w3.org/TR/CSS2/colors.html#propdef-background-position
Rob van Groenewoud

@rob його не працює, зображення є плитковим. Зображення - 1600x1200, а розмір мого екрана - 1280x800
X10nD

2
@Jean ви не можете змінити розмір фонового зображення (поки що). Це можливо в CSS 3, але це ще не підтримується досить широко. center centerу тандемі з цим background-repeat: no-repeatслід робити те, що ви просите, - зосередьте зображення.
Pekka

2
@Jean ах, я бачу зараз з твого екрану. Ви повинні дати bodyа , min-heightпро , 100%так воно тягнеться через весь екран. Це може сортувати це.
Pekka

5

Подобається це:

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

У вашому коді помилка. Ви використовуєте суміш повного синтаксису та скорочення нотаток на властивості background-image. Це спричиняє ігнорування неповторного повторення, оскільки це невірне значення для властивості 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;
}

РЕДАКТУВАННЯ. Для вирішення проблеми "масштабування" вашого зображення, ви можете переглянути відповідь на це запитання .


'background: url (../ images / images2.jpg) центр центру не повторюється;' не працює, оскільки синтаксис неправильний. А інші теж не працюють
X10nD


2
background-repeat:no-repeat;
background-position:center center;

Не вертикально фокусує фонове зображення при використанні HTML 4.01 "STRICT".

Додавання:

background-attachment: fixed;

Слід усунути проблему

(Тож Олександр має рацію)


1

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

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

з

background:url(../images/images2.jpg)  center;

0

якщо ви не задоволені відповідями вище, скористайтеся цим

    * {margin: 0;padding: 0;}

    html
    {
        height: 100%;
    }

    body
    {
        background-image: url("background.png");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 80%;
    }

0

Була така ж проблема. Використовували властивості відображення та поля, і це спрацювало.

.background-image {
  background: url('yourimage.jpg') no-repeat;
  display: block;
  margin-left: auto;
  margin-right: auto;
  height: whateveryouwantpx;
  width: whateveryouwantpx;
}

0
background-position: center center;

не працює для мене без ...

background-attachment: fixed;

використовуючи як зосереджене моє зображення на осі х і у

background-position: center center;
background-repeat: no-repeat;
background-attachment: fixed;

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.