Phù hợp với hình nền cho div


331

Tôi có một hình nền trong div sau, nhưng hình ảnh bị cắt bỏ:

 <div style='text-align:center;background-image: url(/media/img_1_bg.jpg);background-repeat:no-repeat;width:450px;height:900px;' id="mainpage" align="center">

Có cách nào để hiển thị hình ảnh nền mà không cắt nó?


Là hình ảnh lớn hơn div?
grc

1
vâng, hình ảnh lớn hơn div
Rajeev

1
hình nền: url (/media/img_1_bg.jpg); kích thước nền: chứa; lặp lại nền: không lặp lại;
Waruna Manjula

Câu trả lời:



117

Nếu những gì bạn cần là hình ảnh có cùng kích thước của div, tôi nghĩ đây là giải pháp thanh lịch nhất:

background-size: 100% 100%;

Nếu không, câu trả lời của @grc là câu trả lời thích hợp nhất.

Nguồn: http://www.w3schools.com/cssref/css3_pr_background-size.asp


Cuối cùng tôi tìm thấy giải pháp để phù hợp với toàn bộ div với nền. Cảm ơn bạn!
Kamil Rykowski

5
Nhưng điều này sẽ kéo dài hình ảnh ... có cách nào để phù hợp với hình nền mà không kéo dài nó không?
Junaid

1
Tuy nhiên, tỷ lệ khung hình bị mất.
Học viên

@Learner Nếu bạn thay đổi kích thước của hình ảnh mà không cắt xén hình ảnh, tỷ lệ khung hình sẽ bị mất 99% thời gian. Đó là lẽ thường.
Vaibhav Vishal

11

Bạn có thể sử dụng thuộc tính này:

background-size: contain;
background-repeat: no-repeat;

và mã của bạn là như thế này:

 <div style="text-align:center;background-image: url(/media/img_1_bg.jpg); background-size: contain;
background-repeat: no-repeat;" id="mainpage">

8

bạn cũng sử dụng cái này:

background-size:contain;
height: 0;
width: 100%;
padding-top: 66,64%; 

Tôi không biết giá trị div của bạn, nhưng giả sử bạn đã có chúng.

height: auto;
max-width: 600px;

Một lần nữa, đó chỉ là những con số ngẫu nhiên. Có thể khá khó để tạo ảnh nền (nếu bạn muốn) với chiều rộng cố định cho div, vì vậy tốt hơn nên sử dụng chiều rộng tối đa. Và thực tế không quá phức tạp để lấp đầy một div bằng hình nền, chỉ cần đảm bảo bạn tạo kiểu cho phần tử cha theo đúng cách, để hình ảnh có một vị trí mà nó có thể đi vào.

Chris


Liên kết đến một câu trả lời được bình chọn cao nói về giải pháp này chi tiết hơn: stackoverflow.com/questions/600743/ ( và chỉ cho bạn cách tính toán padding-top.
John Lee
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.