2013-07-29 48 views
5

Tôi phải làm như sau: Phần trên cùng của div là một hình ảnh của một gradient, sau đó ở phía dưới nó tiếp tục như một màu đồng nhất. Tôi có thể làm điều này với CSS đơn giản không? Tôi biết những điều sau không hợp lệ.gradient nền với màu đồng nhất

{background: url(img/right_column_bg_top.png) no-repeat rgba(10,26,39,1) top 225px; 

Lưu ý: người đầu tiên 225px, mà hình ảnh lấp đầy, nên nếu không có sự background-color

Trả lời

6

Theo như tôi biết, bạn cần phải sử dụng một gradient cho màu sắc rắn, do đó bạn có thể đặt nó một cách chính xác.

CSS sẽ là:

.imgbg { 
    width:255px; 
    height:355px; 
    background: url('http://blue2.hu/danone/nogravity/img/right_column_bg_top.png'), linear-gradient(90deg, #f7d8e8, #f7d8e8); 
    background-position: 0px 0px, 0px 112px; 
    background-repeat: no-repeat, no-repeat; 
    background-size: 255px 112px, 255px 233px; 
} 

Dưới đây là your updated fiddle

suport cơ bản cần sử dụng tốt cho các trình duyệt hỗ trợ nhiều nền tảng, vấn đề duy nhất là với IE < = 8. nền Gradient có thể là một vấn đề với IE9, nhưng tôi nghĩ rằng nó sẽ làm việc (tôi không thể kiểm tra IE9). Nếu nó thực sự là một vấn đề, hãy xem colozilla để sửa chữa.

+0

Vâng, đây thực sự là điều tôi đang tìm kiếm, chỉ còn 2 câu hỏi: làm thế nào crossbrowser này? Thứ hai, làm thế nào là điều này làm việc trong một div chiều cao năng động? Tôi hỏi điều này bởi vì, bạn đã sử dụng một thuộc tính kích thước nền. - Tôi vừa loại bỏ tài sản đó, và nó làm việc cho tôi. – marcias

+1

Tôi đã chỉnh sửa câu trả lời để bao gồm thông tin crossbrowser. Về kích thước hình ảnh, tôi đoán rằng không nói kích thước của hình ảnh không phải là một vấn đề, và vì vậy với gradient, nhưng tôi không thực sự chắc chắn. – vals

0

tôi sẽ làm như sau:

#myDiv { background: #f7d8e8 url('/img/right_column_bg_top.png') repeat-x ; }

này sẽ chỉ đặt nền của bạn hình ảnh trên đầu trang của div; phần còn lại của nó, sẽ là màu bạn đã chọn cho toàn bộ nền của div.

+0

Vâng, bạn đã thử dùng thử? Tôi đang sử dụng chrome, và nó đặt màu sắc ở khắp mọi nơi, ngay cả dưới hình ảnh, nơi nó trong suốt. – marcias

+0

Có lẽ tôi không hiểu câu hỏi của bạn, nhưng có gì sai khi đặt màu dưới hình ảnh? Nếu đó là một gradient với một màu giống với nền. Kiểm tra trang web này tôi đã thực hiện một số thời gian trước đây: [http://mychinesephrases.com] (http://mychinesephrases.com), nơi tôi đặt gradient trên đối tượng 'body'. –

+0

Kiểm tra điều này, với hình ảnh của tôi trong fiddle. Bây giờ bạn có thể thấy rằng màu hồng dưới hình ảnh .imgbg {width: 350px; chiều cao: 300px; background: # f7d8e8 url ('blue2.hu/danone/nogravity/img/right_column_bg_top.png') Điều tôi muốn là màu hồng chỉ nên bắt đầu dưới phần cuối của hình ảnh. – marcias

0

Kiểm tra câu đố này và cho tôi biết nếu đây là những gì bạn muốn.

FIDDLE

HTML

<div class="imgbg"></div> 

CSS

.imgbg { 
    width:255px; 
    height:355px; 
    background:#f7d8e8 url('http://placehold.it/255x255') no-repeat; 
} 
+0

Tôi cũng tạo liên kết cho nó: http://jsfiddle.net/YPcVB/1/ – marcias