CSS’in En Zor Dillerden Biri Olduğunun 5 Kanıtı

webali 14 Mart 2020 0 Comments

CSS’i adam yerine koymayabilirsiniz. Onu bir dil olarak kabul etmeyebilir, zaman zaman kendisini aşağılamak suretiyle örseleyebilirsiniz bile. HTMLPHP ve JavaScript gibi büyükler dururken CSS hangi kapının köpeği oluyor, değil mi ama?

Web projelerinin kuyruk sokumu olmasına rağmen CSS’e hak ettiği değeri asla vermedik. “CSS de dil mi yaaa?” diyerek, onun diğer dillerin mevcudiyetini hiyanet saydık. Tüm bunları yaparken gözden kaçırdığımız detaylarla CSS’in en zor dillerden biri olabileceği gerçeğini atladık. “CSS” ve “zor dil olmak” size aynı cümle içinde pek tutarlı görünmüyorsa, 5 kapı gibi nedenden sonra görüneceğine eminiz:

01. Hata raporu olmayan dil

Tüm web dilleri belli başlı kurallara göre yazılır. Her kafanızın estiği yere virgül kondurur gibi bir komut konduramazsınız. CSS için de kurallı bir yapı takip etmeniz elzemdir. Yeri geldiğinde selector’ün adını belirlemeniz, sonra en süslüsüden bir parantez kondurmanız gerekir. Ardından değerlerinizi yazıp bir ters süslü parantezle Selector’ünüzü tamamlarsınız.

.wma {
  color: #fff;
  background-color: #000;
} 

Sıradan bir dille kodlama yaparken, bir şeyler ters gittiğinde ekranınıza kocaman bir hata mesajı konuverir. Hata mesajı, evinize gönderilen EDS çıktısı gibi sizi nerede, ne zaman ve ne şekilde bir hata yaptığınızı gösterir. Ya CSS için ne demeli?

CSS’de hata yaptığınızda; yaptığınız hatayı fark etmeniz, hatanın nerede olduğunu fark etmeniz ve hatayı düzeltmek için hatalı yeri bulmanız tamamen size kalmıştır. İşte o yüzdendir ki CSS sanıldığı kadar kolay bir dil değildir.

02. Değişkenler yok bi’ kere!

JavaScript ve PHP gibi dillerde verilerinizi kadirşinas bir değişkende saklayabilirsiniz. Kadirşinas değişkenler, sizi yalnız bırakmayıp daima zaman kazanmanıza yardımcı olurlar. Üstelik bu değişkenler kodlarınızı daha yönetilebilir kılarlar. Her bir değeri bir bir değiştirmek yerine tek bir değişkeni düzenleyerek onlarca satırı yenileme derdinden yırtabilirsiniz.


CSS’e geldiğimizdeyse değişkenlerin olmadığı bir dünya bizi bekliyor. Aslında bazı adımlar atılarak bu iş önce tatlıya sonra değişkenlere bağlanmak istendi fakat henüz kabul edilebilir sonuçların elde edildiğini söyleyemeyiz. Eskiden kendi dilini kendi yapan web tasarımcıları kullandıkları şöyle bir renk şeması yönetimi ve ilkel değişken metodu varmış, bu müzelik eseri de sizinle paylaşayım:

/*======= renk şeması ==========*/
primary              #000
secondary            #ccc
text                 #333
hover              #aaa

03. Falınızda tarayıcı uyuşmazlığı var

Tarayıcı uyumu, daha doğrusu tarayıcı uyumsuzluğu CSS için tam bir baş belasıdır. Kimi aydınlarca oluşturulan W3C gibi standartlar piyasaya hakim ancak hala kafasına göre takılan teknoloji şirketleri ve internet tarayıcıları var. Chrome’da çalışan Firefox’da çalışmayabilir, Firefox’da çalışan Safari’de çalışmayabilir. Bazen Chrome, Firefox ve Safari’de çalışan Edge’de çalışmayabilir.

Bir de işin içine eski olmasına rağmen Internet Explorer desteği girebilir ki, oradan pek çıkabileceğimizi düşünmüyorum. CSS kadar internet tarayıcılarından çeken başka dil var mıdır? CSS gibi bize çektiren başka zalım var mıdır?

04. CSS Özgüllüğü

CSS Selector’leri farklı dereceden özelliklere sahip olabilirler. Mesela hemen aşağıdaki kod satırına bir göz atın:

p {
  color: #000;
}
p {
  color: #333;
}

İki Selector şu an birbirine eşit görünüyorlar. Şimdi birini .paragraf sınıfı (class) ekleyerek, farklı bir stil oluşturmuş olacağız.

p.paragraf {
  color: #000;
}
p {
  color: #333;
}

Pozisyonundan bağımsız olarak, paragraf sınıfı ile atanan paragraf, daha spesifik olduğu için #000 rengine sahip olacaktır. Anlatması bile zor ve karmaşık, bir de bunu kullanmak zorundayız. Daha az özellikli Selector’lerden biri, yüksek özgüllüğe sahip bir Selector’e yazılmış olabilir ve suçluyu saatlerce aramanız gerekebilir. Ötesi var mı yahu?

05. Bi tık’ın dayanılmaz hafifliği

Sorun CSS’i bilen kişilerin kolay kabul etmesi değil, asıl sorun CSS’i bilen bilmeyen herkesin kolay kabul etmesi. Müşteriniz veya çalışma arkadaşlarınız sizden farklı bir estetik anlayışa sahip olabilirler. Sonuç olarak o logoyu bugün 1px bu tarafayarın 5px solaresmi bayramlarda 3px yukarıdini bayramlarda 2px aşağı almanız istenebilir.


“Oooo o çok uzun iş,” deseniz, kimseye de inandıramazsınız. Neden? Çünkü CSS’in adı çıkmış bir kere! Bir tık oraya bir tık buraya derken, normal bir betik üzerinde kolay kolay rica edilemeyecek ne kadar iş varsa hepsini gönül hoşluğuna yapmak zorunda bırakılırsınız. Belki CSS’e katlanmanın en zor yanı da budur, ne dersiniz?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir