CSS Sonunda If/Else Mantığına Kavuşuyor!
Geçtiğimiz birkaç sene içerisinde takip edilmesi güç sayıda çok CSS özelliği tanıtıldı. Geliştiriciler, kullanıcılarının isteklerine kulak vererek birçok sayıda geliştirme, rahat kullanım için syntax değişimi gerçekleştirdiler. Yakın zamanda ise CSS’e if/else mantığı olmasıyla alakalı yapılan bir öneri, CSSWG (CSS Working Group) çalışanları tarafından CSS’in güncellemesine dahil edileceği açıklandı.
Css’te elbette hali hazırda medya sorgularında mantık kullanıyorduk.
@media (min-width: 600px) {
/* Medya sorgusu doğru olduğu zaman bu blok içerisindeki stil değerleri dosyaya uygulanır.*/
}
Hatta bu mantığı dallandırma ve özelleştirme imkanımız da var.
@media (min-width: 600px) {
/* ... */
}
@media (max-width: 599px) {
/* ... */
}
Bu şekilde ihtiyacımız olan yapıyı oluşturabiliyoruz fakat kullanılan syntax kodu çok uzatıyor ve okumasını zorlaştırıyor. Yapılan yeni öneriyle kod çok daha temiz bir görünüme sahip oluyor:
@when media(min-width: 600px) {
/* ... */
} @else {
/* ... */
}
Ayrıca “and” yardımıyla birden fazla koşul ekleme, iç içe @else kullanarak daha dinamik stil dosyası da oluşturabilirsiniz!
@when media(width >= 400px) and media(pointer: fine) and supports(display: flex) {
/* A */
} @else supports(caret-color: pink) and supports(background: double-rainbow()) {
/* B */
} @else {
/* C */
}
Bu yeni özellikle alakalı aklınızda isimlendirmeyle alakalı ufak bir soru olabilir. Yazının başında if/else mantığı diye bahsetmiştik, peki kullanımda neden @if yerine @when kullanılıyor? Bunun cevabı ise SASS’ın zaten @if kullanıyor olması. CSS dosyaları üzerinde de aynı syntax’ın kullanıması internet ortamında sitelerin çökmesine kısacası tam bir kaosa sebep olur. Bu yüzden geliştiriciler CSS için @when kullanımını daha uygun bulmuşlar. Küçük bir sır vermem gerekirse, bende bazı CSS kullanıcıları gibi her programlama dilinde kullanılan if’in kullanılmamasını daha havalı buldum ?
Benim CSS hakkında söyleyeceklerim bugünlük bu kadardı. Yeni gelişmeleri aktarmak benim için çok keyifliydi, umarım siz de okurken keyif almışsınızdır. Bir sonraki yazımda görüşmek üzere, mutlu forumlar!