Aşağıdakileri yapacak CSS önişlemcisi LESS'de bir blok yazmaya çalışıyorum:LESS CSS preprocessor: Tek bir rengin bir rgb ve rgba tanımına eşlenmesinin bir yolu var mı?
@transparent_background(@color; @alpha: .8)
{
background: @color;
background: rgba(<color R value>, <color G value>, <color B value>, @alpha);
}
Standart bir hex tanımlaması (yani #rrggbb ise, rengin RGB değerini almanın bir yolu var mı?)? @Color başka bir şekilde tanımlanmışsa bunu yapmanın bir yolu var mı?
DÜZENLEME: ÇÖZÜM
@transparent_background(@color; @alpha: .8)
{
background: @color;
background: @color + rgba(0, 0, 0, @alpha);
}
@color yalnızca altıgen bir tanımlama olduğundan, önce alfa kanalının çıkarılmasına gerek yoktur. Böylece çözüm basitçe: @color + rgba (0, 0, 0, @ alfa). Geriye doğru gözüküyor ama ben hex/rgba'yı bu şekilde karıştırdığının farkında değildim. –
Sadece biraz paranoyak ve alfa kanalı modifikasyonunu geleceğe karşı korumayı deniyordum, dolayısıyla alfa kanalı bilinen bir duruma zorlamak için çıkarma işlemine '@ alpha' eklenmesi alfa kanalının eşit olmasına neden oluyordu. @ alpha'. Ek bir bonus olarak, sadece biraz ayar yapmak yerine alfa kanalını atadığınızı daha net bir şekilde ortaya koyar. –
En azından, az önce, alfa kanalının negatif gitmesini önlemek için bir kontrol yoktur. –