Tôi đang sử dụng sass và la bàn và tôi đang cố gắng tạo các lớp css cho hình ảnh khớp với một mẫu nhất định. Các dự định/kết quả css chủ yếu trông như thế này:Lấy danh sách các tệp trong sass/compass
.class1 { background-image: url(class1.png); }
.class2 { background-image: url(class2.png); }
Trong khi nó có thể là có thể sử dụng các chức năng la bàn sprite (http://compass-style.org/help/tutorials/spriting/) nó là bất tiện (vì nó sẽ tạo ra file mới) trong trường hợp của tôi như là những hình ảnh đã tự spritesheets.
Vì vậy, việc có thể làm điều gì đó như
@each $clazz in listFiles("images/*") {
.#{$clazz} {
background-image: url('#{$clazz}.png');
}
}
sẽ là tuyệt vời. Có cách nào dễ dàng hơn để làm như vậy không?
Điều đó tạo danh sách các đường dẫn tệp đầy đủ cho tôi (ví dụ: images/filename1.png). Có cách nào đơn giản để lấy tên cơ sở cho người mới sử dụng ruby không? – morewry
@morewry Chắc chắn, chỉ cần sử dụng phương thức [File.basename] (http://www.ruby-doc.org/core/File.html#method-c-basename) của Ruby: 'Sass :: Script :: String.new (File.basename (x)) '. – hopper
Ngoài ra, bạn có thể sử dụng 'Sass :: Script :: String.new (File.basename (x,". * "))' Để chỉ lấy tên tệp mà không có phần mở rộng. –