2009-05-12 37 views
114

Việc sử dụng chính xác thuộc tính hình nền CSS là gì? Những điều quan trọng tôi đang cố gắng để hiểu làHình nền CSS - Cách sử dụng chính xác là gì?

  1. Liệu nó cần phải được trong dấu ngoặc kép tức là .: background-image: url('images/slides/background.jpg');
  2. Nó có thể là một đường dẫn tương đối (như trên) hoặc nó phải là một URL đầy đủ?
  3. Bất kỳ điểm nào khác mà tôi cần lưu ý để đảm bảo nó hoạt động chính xác trên các trình duyệt tuân thủ tiêu chuẩn.
+0

Xem thêm http : //stackoverflow.com/questions/2168855/css-url-whats-better – harpo

+3

@harpo có thể bạn nên yêu cầu họ đến và gặp tôi, vì câu hỏi của tôi đã được hỏi một năm trước họ;) Cảm ơn bạn đã thông tin;) –

+0

Tôi không có ý đó là một bản sao, tôi chỉ thấy rằng dễ đọc hơn với sự tôn trọng để trích dẫn. (Plus tôi đã không nhận thấy ngày.) – harpo

Trả lời

130

Đường dẫn có thể đầy đủ hoặc tương đối (tất nhiên nếu hình ảnh từ một tên miền khác phải đầy).

Bạn không cần sử dụng dấu ngoặc kép trong URI; cú pháp hoặc có thể là:

background-image: url(image.jpg); 

Hoặc

background-image: url("image.jpg"); 

Tuy nhiên, từ W3:

Một số nhân vật xuất hiện trong một URI không thể viện chứng, chẳng hạn như dấu ngoặc đơn, ký tự khoảng trắng, dấu nháy đơn (') và dấu ngoặc kép ("), phải được thoát bằng dấu gạch chéo ngược sao cho giá trị URI kết quả là mã thông báo URI:' \ (',' \) '.

Vì vậy, trong các trường hợp như vậy, hoặc là cần thiết để sử dụng dấu ngoặc kép hoặc dấu ngoặc kép hoặc thoát khỏi các ký tự.

0

Bạn không cần sử dụng dấu ngoặc kép và bạn có thể sử dụng bất kỳ đường dẫn nào bạn thích!

47
  1. Không cần báo giá.

  2. Có thể. Nhưng lưu ý rằng các URL tương đối được giải quyết từ URL của biểu định kiểu của bạn.

  3. Tốt hơn không nên sử dụng dấu ngoặc kép. Tôi nghĩ có những khách hàng không hiểu họ.

21

1) đặt dấu ngoặc kép là một thói quen tốt

2) nó có thể là đường dẫn tương đối ví dụ:

background-image: url('images/slides/background.jpg'); 

sẽ tìm kiếm thư mục hình ảnh trong thư mục mà từ đó css được tải. Vì vậy, nếu hình ảnh nằm trong một thư mục khác hoặc trên cây thư mục CSS, bạn nên sử dụng đường dẫn tuyệt đối hoặc tương đối với đường dẫn gốc (bắt đầu bằng /)

3) bạn nên sử dụng khai báo hoàn chỉnh cho nền để làm cho nó hoạt động nhất quán trên các trình duyệt tuân thủ các tiêu chuẩn như:

background:blue url('/images/clouds.jpg') no-repeat scroll left center; 
+1

Bạn không có nghĩa là 'nền' thay vì' nền-hình ảnh'? – Gumbo

+0

cảm ơn vì đã trỏ @Gumbo, nó phải là * nền * – TheVillageIdiot

+1

tại sao việc đặt dấu ngoặc kép là một thói quen tốt? –

0

Hãy nhìn vào các trang tài liệu tham khảo Sitepoint tương ứng cho background-imageURIs

  1. Nó không phải là trong dấu ngoặc kép nhưng có thể sử dụng chúng nếu bạn muốn. (Tôi nghĩ IE5/Mac không hỗ trợ dấu nháy đơn).
  2. Cả tương đối lẫn tuyệt đối đều có thể thực hiện được; một đường dẫn tương đối có liên quan đến đường dẫn của tệp css.
5

Đường dẫn tương đối tốt và không cần báo giá. Một điều khác có thể giúp là sử dụng thuộc tính "viết tắt" background để chỉ định màu nền trong trường hợp hình ảnh không tải hoặc không có sẵn vì một lý do nào đó.

#elementID { 
    background: #000 url(images/slides/background.jpg) repeat-x top left; 
} 

Cũng thông báo rằng bạn có thể xác định xem hình ảnh sẽ lặp lại và trong những gì hướng (nếu bạn không chỉ định, mặc định là để lặp lại ngang và dọc), và cũng là vị trí của hình ảnh tương ứng với nó thùng đựng hàng.

3

Nếu hình ảnh của bạn đang ở trong một thư mục riêng biệt của file css của bạn và bạn muốn đường dẫn tương đối bắt đầu từ thư mục gốc của trang web của bạn:

background-image: url('/Images/bgi.png'); 
+0

Tôi đã không tìm kiếm cho tôi có thể sử dụng một đường dẫn tương đối ... Tôi đã tìm kiếm làm thế nào để sử dụng một đường dẫn tương đối ... 1 để được rõ ràng về nơi con đường bắt đầu. –

0

chỉ cần kiểm tra cấu trúc thư mục nơi chính xác hình ảnh được giả sử bạn có một thư mục css và thư mục hình ảnh bên ngoài thư mục css sau đó bạn sẽ phải sử dụng "../ images/image.jpg" và nó sẽ làm việc như nó đã làm cho tôi chỉ cần chắc chắn rằng cấu trúc thư mục.

-1

chỉ cần viết trong file css của bạn như dưới đây

background:url("images/logo.jpg") 
-1

bạn thực sự không cần dấu ngoặc kép nếu để nói sử dụng đang sử dụng hình ảnh từ file css của bạn nó có thể được

{background-image: url(your image.png/jpg etc);} 
Các vấn đề liên quan