Căn giữa một hình nền, sử dụng CSS


148

Tôi muốn tập trung vào một hình ảnh nền. Không có div được sử dụng, đây là kiểu CSS :

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

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


1
Bây giờ điều đó 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, phải không?
nikc.org

@nikc +1, tôi biết, nhưng cần biết có công việc nào không
X10nD

Câu trả lời:


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

Cần làm việc.

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

Khác với 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ể của mình min-heightthà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%;
}

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

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

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

Để thêm hình ảnh vào jsfiddle, chỉ cần sử dụng đường dẫn http đầy đủ EX: background-image:url(http://www.myurl.com/images/image.jpg);đặt hình ảnh đó vào CSS.
Kyle

Tôi không có máy chủ để làm điều đó, nhưng đã sử dụng một trang web imagehosting, nhưng vẫn kiểm tra ngay bây giờ
X10nD

20

Tôi sử dụng mã này, nó hoạt động tốt

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

Cảm ơn! Tôi thậm chí còn không biết rằng có các tuyên bố khác nhau cho webkit, v.v ...
Mike Rapadas

Này Victor, tôi đã sử dụng mã của bạn rất nhiều, nhưng có vẻ như bây giờ nó không hoạt động. Tôi đã thêm phần đí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

Chỉ -webkit-background-sizetồn tại từ các tuyên bố đặc biệt mặc dù.
BigBang1112

16

Tôi nghĩ rằng đây là những gì đang muốn:

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

6
phần đính kèm nền đã khắc phục sự cố cho tôi;)
kdoteu

7

Thử

background-position: center center;

Làm thế nào đến trung tâm đôi làm việc? Dù sao nó cũng không giải quyết được vấn đề, vẫn như vậy
X10nD

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

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

2
@Jean bạn không thể thay đổi kích thước hình nền (chưa). Nó có thể có trong CSS 3 nhưng điều đó chưa được hỗ trợ đủ rộng rãi. center centersong song với việc background-repeat: no-repeatnên làm những gì bạn yêu cầu - căn giữa hình ảnh.
Pekka

2
@Jean ahh, tôi thấy bây giờ từ ảnh chụp màn hình của bạn. Bạn cần cung cấp cho bodymột min-heighttrong số 100%đó để nó mở rộng trên toàn màn hình. Điều đó có thể sắp xếp nó.
Pekka

5

Như thế này:

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

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

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

EDIT: Đối với vấn đề 'chia tỷ lệ' hình ảnh của bạn, bạn có thể muốn xem câu trả lời của câu hỏi này .


'nền: url (../ hình ảnh / hình ảnh2.jpg) trung tâm không lặp lại;' không hoạt động, vì cú pháp sai và những cái khác cũng không hoạt động
X10nD

2

Thử cái này background-position: center top;

Điều này sẽ làm cho các mẹo cho bạn.


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

Không định tâm theo chiều dọc của hình nền khi sử dụng loại tài liệu html 4.01 'STRICT'.

Thêm:

background-attachment: fixed;

Nên khắc phục sự cố

(Vậy Alexander nói đúng)


1

chỉ cần thay thế

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

với

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

0

Nếu bạn không hài lòng với câu trả lời ở trên thì hãy sử dụng

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

Có cùng một vấn đề. Được sử dụng hiển thị và thuộc tính lề và nó đã làm việc.

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

không làm việc cho tôi mà không ...

background-attachment: fixed;

sử dụng cả hình ảnh trung tâm của tôi trên trục x và y

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.