2010-04-15 36 views
99

Tôi muốn căn giữa hình nền. Không có div sử dụng, đây là CSS phong cách:Căn giữa hình nền, sử dụng CSS

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

Các gạch CSS trên khắp và làm trung tâm này, nhưng một nửa hình ảnh không được nhìn thấy, nó chỉ loại di chuyển lên. Những gì tôi muốn làm là căn giữa hình ảnh. Tôi có thể áp dụng các hình ảnh để xem ngay cả trên một màn hình 21" ?

+1

Bây giờ sẽ phụ thuộc vào kích thước của hình ảnh và kích thước của trình duyệt, nó sẽ không? –

+0

@nikc +1, tôi biết, nhưng cần biết nếu có công việc xung quanh – X10nD

Trả lời

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

Điều đó sẽ làm việc.

Nếu không, tại sao không làm một div với hình ảnh và sử dụng z-index để làm cho nó nền? Điều này sẽ dễ dàng hơn nhiều để trung tâm hơn một hình nền trên cơ thể.

Khác hơn là thử:

background-position: 0 100px;/*use a pixel value that will center it*/ Hoặc tôi nghĩ bạn có thể sử dụng 50% nếu bạn đặt cơ thể min-height thành 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

Nó tập trung, nhưng chỉ hiển thị một nửa màn hình, tôi muốn stackoverflow có một tùy chọn để đính kèm ảnh chụp màn hình – X10nD

+0

Bạn có thể tạo ảnh chụp màn hình và tải nó lên máy chủ của bạn hoặc miễn phí pic lưu trữ trang web như photobucket.com, hoặc làm một ví dụ tạm thời tại www.jsfiddle.net và gửi một liên kết cho chúng tôi. Từ những gì bạn đã nói, hình ảnh có độ phân giải 1600x1200 và hầu hết độ phân giải màn hình không cao, hãy thử thay đổi kích thước hình ảnh của bạn để vừa. Tôi sử dụng màn hình màn ảnh rộng ở mức 1440x900 chẳng hạn. – Kyle

+0

ảnh chụp màn hình - http://imagevat.com/picview.php? ig = 6179 Tôi không chắc chắn cách tải hình ảnh lên jsfiddle, nếu bạn có thể giúp tôi ở đó http://www.jsfiddle.net/yWrQP/ – X10nD

5

Hãy thử

background-position: center center; 
+0

Làm cách nào để trung tâm đôi hoạt động? Dù sao nó không giải quyết được vấn đề, vẫn giống nhau – X10nD

+1

@Jean: nhìn vào thông số kỹ thuật, vị trí nền thực sự có thể thực sự có 2 giá trị (ngang và dọc). http://www.w3.org/TR/CSS2/colors.html#propdef-background-position –

+0

@rob không hoạt động, hình ảnh bị rách. Hình ảnh có kích thước 1600x1200 và kích thước màn hình của tôi là 1280x800 – X10nD

3

Có lỗi trong mã của bạn. Bạn đang sử dụng kết hợp cú pháp đầy đủ và ký pháp viết tắt trên thuộc tính background-image.Điều này gây ra không lặp lại bị bỏ qua vì nó không phải là giá trị hợp lệ cho thuộc tính hình nền.

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

nên trở thành một trong những điều sau đây:

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

hoặc

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

EDIT: Đối với hình ảnh của bạn 'rộng' vấn đề, bạn có thể muốn xem xét this question's answer.

+0

'nền: url (../ images/images2.jpg) trung tâm trung tâm không lặp lại;' không hoạt động, vì cú pháp là sai Và các cú pháp khác không hoạt động hoặc là – X10nD

16

tôi sử dụng mã này, nó hoạt động thoải mái

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

Cảm ơn! Tôi thậm chí không biết rằng có những tờ khai khác nhau cho webkit, v.v ... –

+0

Xin chào Victor, tôi đã sử dụng mã của bạn rất nhiều, nhưng có vẻ như nó không hoạt động ngay bây giờ. Tôi đã thêm tệp đính kèm nền: đã sửa; nhưng nó không hoạt động trên trình duyệt iPad của tôi ... – Vadim

1

Hãy thử điều này background-position: center top;

này sẽ làm các trick cho bạn.

9

Tôi nghĩ this là những gì đang bị truy nã:

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

background-attachment cố định vấn đề cho tôi;) – kdoteu

+1

Vâng, điều này cũng phù hợp với tôi. – Hexodus

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

Không theo chiều dọc tập trung hình nền khi sử dụng một html 4,01 DOCTYPE 'nghiêm ngặt'.

Thêm:

background-attachment: fixed; 

nên khắc phục vấn đề

(Vì vậy, Alexander là đúng)

0

nếu bạn không hài lòng với câu trả lời ở trên sau đó sử dụng này

* {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

Các điều duy nhất làm việc cho tôi là ..

margin: 0 auto 
0

Đã xảy ra sự cố tương tự. Đã sử dụng các thuộc tính hiển thị và lề và nó hoạt động.

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

chỉ đơn giản là thay thế

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

với

background:url(../images/images2.jpg) center; 
Các vấn đề liên quan