2010-04-15 17 views
99

Chcę wyśrodkować obraz tła. Nie ma div stosowane, to jest styl CSS:Wyśrodkowanie obrazu tła za pomocą CSS

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

Powyższe płytki CSS całym centrum i robi to, ale pół obraz nie widać, to po prostu rodzaj przesuwa się w górę. To, co chcę zrobić, to wyśrodkować obraz. Mogłem przyjąć na zdjęcie, aby zobaczyć nawet na ekranie 21" ?

+1

że teraz będzie zależeć od wielkości obrazu oraz rozmiaru okna przeglądarki, prawda? –

+0

@nikc +1, jestem świadomy, ale muszę wiedzieć, czy było jakieś dzieło w pobliżu – X10nD

Odpowiedz

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

To powinno działać.

Jeśli nie, to dlaczego nie zrobić div z obrazem i użytkowania z-index, aby uczynić go tłem? Znacznie łatwiej byłoby wyśrodkować niż obraz tła na ciele.

Inne niż to:

background-position: 0 100px;/*use a pixel value that will center it*/ Albo myślę, że możesz użyć 50%, jeśli ustawiłeś swoje ciało na min-height na 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%; 
} 
+0

To scentralizowało, ale wyświetla tylko połowę ekranu, chciałbym, aby stackoverflow miał opcję dołączania zrzutów ekranu – X10nD

+0

Możesz zrobić zrzut ekranu i przesłać go na swój serwer lub za darmo Pic hosting strony jak photobucket.com, lub tymczasowy przykład na www.jsfiddle.net i zamieścić link dla nas. Z tego, co powiedziałeś, obraz ma 1600 x 1200 pikseli, a większość rozdzielczości ekranu nie jest tak wysoka, spróbuj zmienić rozmiar obrazu, aby pasował. Używam monitora panoramicznego o rozdzielczości 1440 x 900 na przykład. – Kyle

+0

screenshot - http://imagevat.com/picview.php? ig = 6179 Nie mam pewności, jak przesłać obrazy do jsfiddle, jeśli możesz mi pomóc http://www.jsfiddle.net/yWrQP/ – X10nD

5

Spróbuj

background-position: center center; 
+0

Jak to działa w podwójnym ośrodku centralnym? W każdym razie to nie rozwiązuje problemu, wciąż ten sam – X10nD

+1

@ Jean: spójrz na specyfikacje, pozycja tła faktycznie może przyjąć 2 wartości (poziomą i pionową). http://www.w3.org/TR/CSS2/colors.html#propdef-background-position –

+0

@rob to nie działa, obraz się układa. Obraz ma rozmiar 1600 x 1200 pikseli, a mój rozmiar ekranu to 1280 x 800. – X10nD

3

Wystąpił błąd w kodzie. Używa się kombinacji pełnej składni i skrótu notacji we właściwości background-image. Powoduje to ignorowanie no-repeat, ponieważ nie jest poprawną wartością właściwości background-image.

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

powinny stać się jednym z następujących czynności:

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

lub

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

EDIT: Dla obrazu 'skalowanie' problem, warto spojrzeć na this question's answer.

+0

"background: url (../ images/images2.jpg) center center no-repeat; ' nie działa, ponieważ składnia jest nieprawidłowa A inne nie działają – X10nD

16

używam tego kodu, to działa ładny

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

Dzięki! Nie wiedziałem nawet, że istnieją różne deklaracje dla webkita itp. –

+0

Hej Victor, użyłem twojego kodu dużo, ale wygląda na to, że teraz nie działa. Dodałem tło-załącznik: naprawiono; ale to nie działa w mojej przeglądarce na iPadzie ... – Vadim

1

Spróbuj background-position: center top;

To załatwi za Ciebie.

9

myślę this jest to, co chciał:

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

background-attachment naprawił problem dla mnie;) – kdoteu

+1

Tak, to działa również dla mnie. – Hexodus

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

Nie pionowo wyśrodkować obraz tła podczas korzystania z HTML 4.01 strict '' doctype.

dodania:

background-attachment: fixed; 

powinno rozwiązać problemu

(So Alexander ma rację)

0

jeśli nie jest zadowolony z odpowiedzi powyżej, a następnie użyć tego

* {margin: 0;padding: 0;} 

    html 
    { 
     height: 100%; 
    } 

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

jedyną rzeczą, która zadziałała, jest ...

margin: 0 auto 
0

Miał ten sam problem. Użył właściwości wyświetlania i marginesu i zadziałało.

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

prostu zastąpić

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

z

background:url(../images/images2.jpg) center; 
Powiązane problemy