Tôi đang tìm kiếm một cái gì đó như +stacktextshadow(xanh dương, đỏ, xanh lá cây)
Một hỗn hợp như vậy bóng văn bản: 1px 1px 0 xanh lam, 2px 2px 0 đỏ, 3px 3px 0 xanh lục;
Hiện tại đây là những gì tôi có:
=stacktextshadow($shadows...)
@for $i từ 1 đến hết chiều dài($shadows)
$shadow1: nối thêm(1px 1px 0, nth($shadows,1))
$shadow2: nối thêm(2px 2px 0, nth($shadows,2))
$shadow3: nối thêm(3px 3px 0, nth($shadows,3))
bóng văn bản: $shadow1, $shadow2, $shadow3
h1
+stacktextshadow(xanh dương, đỏ, xanh lá cây)
Điều này mang lại cho tôi:
h1 {
bóng văn bản: 1px 1px 0 xanh lam, 2px 2px 0 đỏ, 3px 3px 0 xanh lục;
bóng văn bản: 1px 1px 0 xanh lam, 2px 2px 0 đỏ, 3px 3px 0 xanh lục;
bóng văn bản: 1px 1px 0 xanh lam, 2px 2px 0 đỏ, 3px 3px 0 xanh lục }
ba lần. Tôi biết tại sao, bởi vì nó ở trong @vì
Chạy ba lần trong vòng lặp bóng văn bản
Khai báo tài sản. Tôi muốn nó được thực hiện chỉ một lần. Nhưng khi nào tôi sẽ bóng văn bản
Khi đưa ra khỏi vòng lặp for, nó không thể truy cập được $shadow1
,$shadow2
Chờ đợi.
Ngoài ra, tôi không muốn lặp lại những điều sau:$shadow($i): nối thêm($i*1px $i*1px 0, nth($shadows,$i) )
(Điều này rõ ràng là không hoạt động) để mọi thứ được thực hiện một cách linh hoạt - cho dù tôi chuyển một tham số vào mixin hay 20.
Bạn có thể tạo một biến bên ngoài vòng lặp để "thu thập" các giá trị bóng, sau đó trong bóng văn bản
Sử dụng biến này trong thuộc tính. Ví dụ:
=stacktextshadow($shadows...)
$tất cả: ()
@for $i từ 1 đến hết chiều dài($shadows)
$all: nối thêm($all, nối thêm($i*1px $i*1px 0, nth($shadows, $i)), dấu phẩy)
bóng văn bản: $all
h1
+stacktextshadow(xanh dương, đỏ, xanh lá cây)
Đầu ra:
h1 {
bóng văn bản: 1px 1px 0 xanh lam, 2px 2px 0 đỏ, 3px 3px 0 xanh lục }
Tôi là một lập trình viên xuất sắc, rất giỏi!