Ben şu yapı bulunan .less stil var:. Değişken enterpolasyon için doğru sözdizimi nedir?
@width:600;
.some-style
{
width:@{width}px;
}
ve bu aşağıdaki hatayı veriyor: Ben den değişkeni ayırt etmek gerekir, çünkü
Expected '}' on line x in file '..\styles.less'
O parantez gerek Aşağıdaki px
sonekini (@widthpx
çalışmaz, çünkü widthpx
adlı bir değişken arar). Ve boşluk kullanamıyorum çünkü 600 px
geçerli değil css. Kıvrık parantez yerine parantez kullanmak da işe yaramıyor.
Burada yanlış olan ne yapıyorum?
Güncelleme: Ben Paket Yöneticisi gelen .less son sürümünün yüklü ve şimdi biraz daha iyi çalışır, ancak ölümcül kusur ile:
width:@(width)px; <--note the parentheses
şimdi derler, ancak bu CSS yayar:
600 px <--note the space, which is invalid CSS, thus useless.
çözüldü: scotts çözümü beni işaret etti. İki yöntemine ek olarak, derleyicinin dizede matematik yapabildiği görülüyor.
@width:600px;
.some-style
{
width:@width/2; <--correctly emits "300px"
}
Bunun nedeni, birimlerle matematik yapabilmem. Örneğin, genişlik yapmak istiyorum: @ {width/2} px. Ama daha yeni kontrol ettim ve derleyicinin aslında bunu anladığı anlaşılıyor. Özgün tanımımı @width: 600px olarak değiştirir ve sonra da stili genişlik olarak ayarlayın: @width/2, derleyici doğru olarak 300px yayar. Bana göre, matematik 600'den ziyade 600px dizesinde yapılıyor ama benim problemimi çözüyor. Lütfen bu çözümü kullanarak cevabınızı (veya yeni bir tane ekleyin) günceller misiniz?Yukarıdaki çözüm gerçekten sorunu çözen şey değil. –
@JoshuaFrank: belki de siz yorum göndermeden önce sizi de dövmüştüm. Açıkçası, '@ width' birimine orijinal koyma nedeninizi yanlış anladım. Bunun neden olduğuna inandığınız cevabın, bunun neden "_not_" karşı-sezgisel olduğunu açıklamaya yardımcı olması için cevabı güncelleyeceğim. – ScottS