2013-05-15 12 views
7

tôi cần những điều sau đây:Cần Rỗng Div Với Background Image Để Buộc Chiều cao và Must Be Responsive

  • div emtpy không có nội dung
  • ảnh
  • nền thiết lập để div hình ảnh
  • nền là chất lỏng/đáp ứng về tái kích thước tôi không thể thiết lập cố định
  • kích thước trên div

Tất cả những gì tôi cố gắng không để buộc các div mở để hỗ trợ kích thước của hình nền. Any help is appreciated rất ...

http://www.everymountain.us/

<header id="header"> 
<div class="wrapper"> 
<div class="inner"> 
<div class="top_banner"></div> 
</div> 
<div class="clear"></div> 
</div> 
</header> 

.front #header .top_banner { background: url('images/bg_front.jpg') no-repeat; background-size: cover; } 
+0

Tôi sẵn sàng xem những nỗ lực của bạn. Xin vui lòng gửi một liên kết JSfiddle của công việc của bạn và một ảnh chụp màn hình của đầu ra mà bạn muốn. – Nitesh

+0

đã thêm liên kết vào trang web và đoạn mã ở trên. – user1447958

+0

Bối cảnh sẽ theo kích thước của Div của bạn. Vì vậy, nếu kích thước của div của bạn không được thiết lập thì hình ảnh backgroud sẽ hiển thị theo kích thước của div. –

Trả lời

1

Bạn có thể xử lý nó sau khi áp dụng CSS

#DivName{ 
    background-size: auto auto; 
    } 

đây đầu tiên tự động là cho chiều rộng và thứ hai là cho chiều cao

+0

tự động không hoạt động ... div trống không có div chiều cao vẫn bị thu hẹp. – user1447958

+0

bạn đây là một phần của kết xuất trình duyệt. bạn có thể thêm không gian " " vào div của bạn không. Tôi nghĩ nó sẽ hoạt động. –

+0

Hãy cho tôi biết nếu bạn có được thành công? –

0

Thử để sử dụng truy vấn medie trong CSS của bạn cho các kích thước màn hình khác nhau để xử lý các độ cao cố định khác nhau. Ví dụ:

@media (min-width: 1200px) { 
    div { height: 3em; } 
} 
@media (min-width: 768px) and (max-width: 979px) { 
    div { height: 2em; } 
} 
@media (max-width: 767px) { 
    div { height: 1.2em; } 
} 
@media (max-width: 480px) { 
    div { height: 1em; } 
    } 

v.v ... những gì bạn cần tùy chỉnh. Bạn có thể để chiều rộng div 100% cho vừa với tất cả màn hình và kích thước nền: bìa. Bạn cũng có thể tạo các hình nền kích thước khác nhau (các tệp khác nhau) cho mỗi kích thước màn hình để cung cấp ít kích thước hơn cho trang web của bạn cho thiết bị di động hoặc máy tính bảng.

+0

Tôi có nghĩa là "phương tiện truyền thông" tất nhiên xin lỗi cho các loại sai – danielnagy

31

Cách để khóa tỷ lệ khung hình của chiều cao với chiều rộng của chất lỏng là sử dụng tỷ lệ phần trăm padding-top hoặc padding-bottom. Điều này là do tất cả tỷ lệ phần trăm đệm là chiều rộng của vùng chứa phần tử. Hình nền của bạn là 960 x 520, vì vậy chiều cao là 54.166666666667%.

html

<div class="top_banner"></div> 

css

.top_banner { 
    background-image: url('images/bg_front.jpg'); 
    background-size: 100%; 
    width: 100%; 
    padding-top: 54.166666666667%; 
    height: 0; 
} 

Ví dụ: http://jsfiddle.net/SsTZe/156/

Về cơ bản cùng một câu hỏi: CSS fluid image replacement?

+0

nơi nào bạn nhận được 54.166666666667% cho padding đầu? –

+2

@ Memor-X 520/960 –

+1

Đây là một kỹ thuật tuyệt vời vượt qua được vấn đề phải nêu rõ chiều cao. Không chỉ nói lời cảm ơn - tôi cũng muốn thu hút sự chú ý của người khác câu trả lời này. – weezilla

0

Do đây là một kết quả google hàng đầu cho việc tạo ra các div chất lỏng chiều cao nói chung (không chỉ những cái trống rỗng như câu hỏi chỉ định), tôi muốn để lại giải pháp CSS Calc cho phép bạn đặt nội dung vào div (mẹo đệm buộc nó phải trống):

.my-div { 
    background: #ccc url(https://link-to-image/img.jpg) no-repeat 50% 0; 
    background-size: 100% auto; 
    width: calc(100vw - 350px); 
    height: calc((100vw - 350px) * 0.468795); /* replace the decimal with your height/width aspect ratio */ 
} 
+0

hiện calc có hoạt động trên tất cả các trình duyệt bây giờ không, bởi vì tôi đã tránh nó vì thiếu sự hỗ trợ? – user1447958

+0

Phạm vi phủ sóng khá tốt trên calc những ngày này, ngoại trừ opera mini: https://caniuse.com/#search=calc –