Tôi đang tìm cách đặt background-image
(hoặc thậm chí hiển thị hình ảnh qua các phần tử giả :after
hoặc :before
) với giá trị, sẽ là URL, thuộc tính rel
, nhưng chỉ trong một số trường hợp nhất định (đây là danh sách tệp trên đám mây). Ví dụ:CSS3: đặt hình nền để rel giá trị thuộc tính
HTML:
<div class="icon ${fileExtension}" rel="${fileURL}"></div>
Nó sẽ là tuyệt vời nếu tôi có thể làm một cái gì đó như thế này:
CSS:
.icon.png,
.icon.jpg,
.icon.jpeg,
.icon.bmp,
.icon.gif { background-image: attr(rel,url); }
... nhưng rõ ràng rằng không làm việc như, nếu tôi không nhầm, hàm attr()
CSS chỉ hoạt động bên trong các khối phần tử giả.
Tôi biết có nhiều cách để thực hiện điều này bằng cách sử dụng JSP có điều kiện hoặc thậm chí logic jQuery, nhưng tôi muốn tìm ra cách làm gọn gàng nhờ CSS3, vì tôi chỉ quan tâm đến các trình duyệt hiện đại. .
Ngoài ra, tôi không muốn đặt rõ ràng hình nền cho URL hoặc tạo thành phần <img>
, vì theo mặc định nếu tệp không phải là hình ảnh được hỗ trợ, tôi muốn hiển thị một tập hợp các biểu tượng được xác định trước.
[Thông số CSS3] (http://www.w3.org/TR/css3-values/#attribute) cho phép 'attr()' được sử dụng ở bất kỳ nơi nào khác cùng với các phần tử giả và thuộc tính 'content'. Đối với triển khai trình duyệt ... Tôi đã không nhận được xung quanh để thử nghiệm đó. – BoltClock
Tôi chưa bao giờ nghe nói về 'attr()' .. – thirtydot
@thirtydot: Nó xuất hiện lần đầu trong [CSS2 content content spec] (http://www.w3.org/TR/CSS2/generate.html), và hữu ích cho các công cụ như bộ đếm tùy chỉnh cho danh sách. Ngoại trừ hầu như không ai sử dụng nó vì những nghi phạm thông thường. – BoltClock