2010-10-19 27 views
7

Ai đó có thể giúp tôi tìm ra sự cố của mình không? Tôi có một hình ảnh <img /> và sẽ cung cấp cho anh ấy hình nền trong một thẻ <a>.Ảnh nền trong <img> phần tử

Dưới đây là ví dụ của tôi:

<img border="0" style="display:block; width:20px; height:20px; background-color:red; padding:9px; background:url(\'./images/system/button/close/close.png)\' no-repeat" /> 

background-color không làm việc để .. :-(Ví dụ của tôi là một chuỗi JavaScript, thats lý do tại sao tôi thoát URL

Cảm ơn bạn đã trợ giúp :-)

+1

Tại sao bạn thoát khỏi dấu ngoặc kép? Bạn có chắc chắn về '.' hàng đầu trong URL không? –

+0

trừ khi im vô cùng bối rối, tại sao bạn điều chỉnh BG của thẻ img mà không sử dụng thuộc tính SRC của nó? và '. /' hàng đầu trong url chỉ là đường dẫn tương đối mà tôi nghĩ là – Ross

+1

Tại sao không sử dụng thuộc tính src? Tại sao bạn cần sử dụng hình nền? – jerjer

Trả lời

9

bạn thậm chí không cần dấu ngoặc kép.

background:url(./images/system/button/close/close.png) 

sử dụng một div nếu bạn có thể

<div style="height:20px; width:20px; padding:9px; background:url(./images/system/button/close/close.png) no-repeat red"></div> 
+0

xin lưu ý, divs theo mặc định được hiển thị dưới dạng hình ảnh khối là nội tuyến – jerjer

+0

Cũng đáng chú ý là màu nền của bạn không hoạt động vì bạn đang ghi đè nó ở xa hơn. Hoặc là 'background: red url (...)' hoặc sử dụng 'background-image' để thay thế. –

+1

Tại sao 'sử dụng div nếu bạn có thể'? Chắc chắn một yếu tố hình ảnh có ý nghĩa ngữ nghĩa hơn nếu mục đích của phần tử là hiển thị một hình ảnh –

3

Bạn đang thoát dấu ngoặc kép và đã chuyển dấu ngoặc kép thứ hai và dấu ngoặc kép.

Trong CSS:

url('foo') /* is technically fine but broken on IE/Mac */ 
url(foo)  /* is fine */ 
url('foo)' /* is not fine */ 
url(\'foo\') /* is not fine */ 

Và như Ross chỉ ra trong một chú thích, thuộc tính src của bạn bị thiếu. Tôi hình dung rằng việc đặt hình nền trên hình ảnh có nền mờ sẽ hoạt động, nhưng nếu bạn không có hình ảnh nội dung, không sử dụng phần tử <img> (và không ẩn bất kỳ hình ảnh nội dung nào bạn có trong đó background-image thuộc tính).

+0

Xin lỗi tôi đã quên nói đó là Chuỗi JavaScript của tôi .. – Patrik

+0

Yếu tố nào đủ điều kiện để sử dụng Hình ảnh có nền trong thẻ ? – Patrik

1

Không hiểu lý do bạn thoát khỏi dấu ngoặc kép.

<img border="0" style="display:block; width:20px; height:20px; background-color:red; padding:9px; background:url('./images/system/button/close/close.png') no-repeat" /> 

Điều đó có hiệu quả không?

Và bạn có chắc chắn về. trong URL?

+0

Vì đó là một Chuỗi JavaScript – Patrik

0

Vâng, ngay cả khi nó là lạ để sử dụng thẻ <img/> cho việc này. (Nó không phải là mục đích của nó, sử dụng src hoặc một div với nền ...)

Here, nó làm việc

1

background-color:red; đang được thay thế bởi background:.

Kết hợp nguồn gốc của bạn. Sau đó, bạn có thể tinh chỉnh thêm nữa bằng cách xóa dấu ngoặc kép trong URL() của nền và khoảng thời gian từ URL. nếu nó liên quan đến vị trí của trang, nó chỉ xóa bỏ dấu gạch chéo ngược.

<img border="0" style="display:block; width:20px; height:20px; padding:9px; background:#F00 url(images/system/button/close/close.png) no-repeat" />

cuối nếu bạn cần phải có một alt thuộc tính nội dung của nó sẽ hiển thị vì không có nguồn. Sử dụng hình ảnh trong suốt nếu bạn thêm alt.

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