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ştirmegetElementsByClassName
ile CSS DeğiştirmequerySelector
ile CSS Değiştirme- En İyi Uygulamalar ve Hususlar
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 vequerySelector
/querySelectorAll
karmaşık seçimler için en iyisidir.