2012-01-11 31 views

Trả lời

10

Tôi nghĩ rằng đó là an toàn hơn để luôn áp dụng màu cùng với hình nền.

Trình duyệt không thể hỗ trợ định dạng png hoặc yêu cầu cho hình ảnh có thể không thành công (vì bất kỳ lý do gì).

Mặt khác, màu sẽ luôn được áp dụng. Xem nó như là một loại kế hoạch dự phòng :-)


Edit:

Bạn thực sự không đòi hỏi một tập tin hình ảnh để chỉ cần tạo một lớp phủ màu bán trong suốt. Chỉ cần background-coloropacity là đủ.

Tôi cho rằng lý do chính xác là jquery ui cho phép áp dụng họa tiết (bạn có thể chọn hoặc tắt chúng trong ứng dụng ThemeBuilder trên trang web jquery ui. Đây là lý do tại sao hình ảnh được sử dụng, ngay cả khi không có kết cấu nào được chọn . không kết cấu thực sự là "phẳng" texture Bạn thực sự có thể nhìn thấy nó trong tên của tập tin hình ảnh:.

ui-bg_flat_75_aaaaaa_40x100.png 
  • phẳng = không có kết cấu, màu sắc phẳng
  • = opacity của kết cấu (sử dụng kênh alpha png)
  • aaaaaa = màu sắc của kết cấu
  • 40x100 = kích thước của mô hình

Nếu bạn áp dụng các "white-dòng" kết cấu để lớp phủ trong ThemeBuilder, nó sẽ tạo ra tập tin hình ảnh với tên này:

ui-bg_ trắng dòng _75_aaaaaa_40x100

Phần đầu tiên của câu trả lời vẫn hợp lệ nhưng đây là lý do chính trong trường hợp jquery ui.

+2

Tại sao không chỉ là một màu? – ripper234

+0

Ồ vâng, điều đó có ý nghĩa - tôi chưa chơi với kết cấu nên tôi không nghĩ về điều đó. – ripper234

0

Chỉ cần một đoán, nhưng có lẽ đó là vì các trình duyệt cũ thiếu hỗ trợ PNG hoặc chỉ hỗ trợ 'một phần' cho hiệu lực thi hành mà họ muốn đạt được, hoặc cho những người quên để sao chép các hình ảnh trên

0

Những gì bạn có là thuộc tính viết tắt CSS để đặt nền. Bạn cũng có thể viết:

background-color: #AAA; 
background-image: url(images/ui-bg_flat_75_aaaaaa_40x100.png); 
background-position: 50% 50%; 
background-repeat: repeat-x; 

Vì màu là thông số đầu tiên trong phiên bản viết tắt, nó phải được chỉ định. Nó có hiệu lực nếu ví dụ:

  • các background-image không được tìm thấy
  • hoặc (trong trường hợp này) chiều cao của phần tử mở rộng chiều cao của background-image
  • hoặc background-image của bạn có chứa transparacy.

Nếu bạn chỉ muốn chỉ định một màu sắc, bạn có thể làm điều này:

background-color: #AAA; 

hay đó (phiên bản tốc ký chỉ với một tham số):

background: #AAA; 

các thông số khác sẽ được đặt thành mặc định sau đó. Nếu bạn muốn expresseion tương tự nhưng không có hình ảnh, bạn có thể làm điều đó như vậy:

background: #AAA none 50% 50% repeat-x; 

Here's một lời giải thích khá tốt về chủ đề này.

+0

có thể có một số giải thích khác, vì chúng cũng có thể xác định 'nền: url kế thừa (...' hoặc 'nền: url trong suốt (...' nếu chúng muốn bỏ qua màu. – kontur

+0

@kontur Đúng vậy, nhưng cả hai 'inherit' và' transparent' là các giá trị hợp lệ cho 'color'-property. – Quasdunk

0

Tôi nghĩ bạn có thể sử dụng chọn hình nền png bán trong suốt cho các tiện ích của bạn khi bạn tạo các tải xuống jquery ui tùy chỉnh. Do đó, điều quan trọng là các phần trong suốt có màu bên dưới.

Chỉnh sửa: Có nghĩa là người xây dựng chủ đề được xây dựng để luôn bao gồm màu và png và gắn với các sơ đồ này, nó bao gồm một png màu chắc chắn nếu kết cấu của bạn chắc chắn, trái ngược với rô hoặc sọc hoặc tùy chọn gradient.

Thấy sự khác biệt giữa:

with semi transparent png

with solid png

+0

Làm cách nào nó hoạt động khác với màu chỉ với độ mờ đục? – ripper234

+0

Bạn không thể mã sọc hoặc cờ với độ mờ đục. - okay, jqueryui xây dựng cho bạn một câu lệnh nền với màu đỏ và màu đỏ png, nhưng nếu bạn chỉ định cờ đỏ, jqueryui sẽ xây dựng cho bạn một câu lệnh nền với màu đỏ chắc chắn và một png với các cờ bán trong suốt. định nghĩa "gấp đôi" trong trường hợp có màu đồng nhất. [xem các liên kết tôi đã thêm vào câu trả lời] – kontur

Các vấn đề liên quan