JavaScript Tutorials

JavaScript ile Dinamik CSS Stil Oluşturma

Spread the love

JavaScript ile CSS özelliklerini dinamik olarak değiştirmek, etkileşimli ve duyarlı web uygulamaları oluşturmak için olmazsa olmazdır. Bu teknik, etkileşimli öğeler, uyarlanabilir düzenler ve akıcı animasyonlar sağlayarak kullanıcı deneyimini önemli ölçüde geliştirir. Bu makale, bunu başarmak için üç temel yöntemi ele almaktadır: getElementById, getElementsByClassName ve querySelector‘ı kullanma.

İçerik Tablosu

getElementById ile CSS Değiştirme

getElementById yöntemi, benzersiz kimliğini kullanarak bir öğeyi doğrudan hedefler. Her kimlik, HTML belgesi içinde benzersiz olmalıdır. Bu yöntem, belirli bir şekilde tanımlanmış tek bir öğeyi değiştirmek için verimli ve basittir.


const myElement = document.getElementById("myUniqueElement");
if (myElement) {
  myElement.style.color = "mor";
  myElement.style.fontSize = "1.2em";
}

Bu kod parçacığı, “myUniqueElement” kimliğine sahip öğenin rengini ve yazı boyutunu değiştirir. if ifadesi, öğenin mevcut olmayabileceği durumları zarifçe ele alarak hataları önler.

getElementsByClassName ile CSS Değiştirme

getElementsByClassName yöntemi, belirli bir sınıf adını paylaşan tüm öğelerin bir koleksiyonunu döndürür. Bu, aynı stili birden çok öğeye uygulamanız gerektiğinde özellikle kullanışlıdır.


const elements = document.getElementsByClassName("myClass");
for (let i = 0; i < elements.length; i++) {
  elements[i].style.backgroundColor = "açıkgri";
}

Bu kod, “myClass” sınıfına sahip tüm öğeler arasında yineleme yapar ve arka plan renklerini ayarlar. getElementsByClassName‘nin canlı bir HTMLCollection döndürdüğüne dikkat edin, yani DOM’deki değişiklikler koleksiyonda yansıtılır.

querySelector ile CSS Değiştirme

querySelector yöntemi, CSS seçicileri kullanarak öğeleri seçmenize olanak tanıyarak en fazla esnekliği sunar. İlk eşleşen öğeyi döndürür.


const element = document.querySelector(".myClass #myElement"); // "myClass" sınıfına sahip bir öğenin içindeki #myElement'ı seçer

if (element) {
    element.style.border = "2px solid siyah";
}

const allElements = document.querySelectorAll(".anotherClass"); // "anotherClass" sınıfına sahip tüm öğeleri seçer
allElements.forEach(element => {
    element.style.textDecoration = "underline";
})

Bu örnek, birleştirilmiş bir seçici kullanarak belirli bir öğenin seçilmesini ve querySelectorAll ve bir forEach döngüsü kullanarak belirli bir sınıfa sahip tüm öğeler arasında yineleme yapılmasını göstermektedir. querySelectorAll statik bir NodeList döndürür.

En İyi Uygulamalar ve Hususlar

En iyi performans ve sürdürülebilirlik için:

  • Mümkün olduğunda CSS sınıflarını kullanın: Satır içi stilleri (element.style.property = "value";) kullanmaktan kaçının, çünkü bunlar özenle hazırlanmış CSS’nizi geçersiz kılabilir ve kodunuzun bakımını zorlaştırabilir. Bunun yerine JavaScript kullanarak sınıflar ekleyin veya kaldırın.
  • Hata Yönetimi: Özelliklerini değiştirmeye çalışmadan önce öğenin mevcut olup olmadığını her zaman kontrol edin, çalışma zamanı hatalarını önleyin.
  • Performans: Büyük ölçekli DOM işlemleri için, yeniden akışları ve yeniden çizimleri en aza indirmek için belge parçaları gibi teknikleri kullanmayı düşünün.
  • Özgüllük: İhtiyaçlarınıza en uygun seçici yöntemini seçin. getElementById benzersiz öğeler için, getElementsByClassName paylaşılan bir sınıfa sahip birden çok öğe için ve querySelector/querySelectorAll karmaşık seçimler için en iyisidir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir