JavaScript Dersleri

JavaScript DOM: classList Kullanımı

eminbasbayan

eminbasbayan

4 dk okuma
JavaScript DOM: classList Kullanımı
🔍 Büyütmek için tıklayın

Web geliştirme dünyasında HTML, CSS ve JavaScript bir bütün olarak çalışır. HTML ile sayfanın iskeletini kurarız, CSS ile görsel görünümünü şekillendiririz, JavaScript ile de sayfaya hareket ve etkileşim kazandırırız. Bu üçlünün birlikte nasıl çalıştığını anlamanın en önemli yollarından biri de JavaScript ile CSS sınıflarını (class) yönetmeyi öğrenmektir.

Bu yazıda, JavaScript kullanarak HTML öğelerine nasıl CSS sınıfı ekleyip çıkarabileceğimizi, bu işlemler için neden classList özelliğinin en doğru tercih olduğunu adım adım öğreneceğiz.

Stil Vermenin İlk Yolu: style Özelliği

JavaScript’te bir HTML öğesinin stilini doğrudan değiştirmek mümkündür. Örneğin, bir paragrafın yazı rengini kırmızı yapmak için şu kod kullanılabilir:

const p = document.querySelector("p"); p.style.color = "red";

Bu yöntem küçük işlemler için işe yarasa da, çok sayıda stil değişikliği gerektiğinde kodu okunmaz ve karmaşık hale getirir. Her stil tek tek tanımlanmak zorundadır ve bu, hem yönetimi zorlaştırır hem de CSS'in gücünü tam anlamıyla kullanmamızı engeller.

Daha Temiz Bir Yöntem: CSS Sınıflarını Kullanmak

CSS’in sunduğu en güçlü özelliklerden biri sınıflardır (classes). Önceden tanımlanmış stilleri bir sınıfa yazarız ve sonra bu sınıfı HTML öğelerine uygularız.

Örneğin:

.highlight { background-color: yellow; font-weight: bold; } .underline { text-decoration: underline; }

Yukarıdaki gibi iki farklı CSS sınıfı tanımlarsak, JavaScript ile bir öğeye bu sınıfları ekleyerek görünümünü değiştirebiliriz.

Klasik Yöntem: setAttribute ile class Eklemek

JavaScript’te bir HTML öğesine sınıf eklemenin ilk yöntemlerinden biri setAttribute metodudur. Örneğin:

const div = document.querySelector("div"); div.setAttribute("class", "highlight");

Bu kod, <div> öğesine highlight sınıfını ekler. Ancak burada dikkat edilmesi gereken önemli bir durum var: Bu yöntem mevcut tüm sınıfları siler ve yerine yenisini yazar. Yani eğer öğede önceden başka sınıflar varsa, onlar kaybolur.

Örnek:

div.setAttribute("class", "underline");

Yukarıdaki işlemden sonra highlight sınıfı silinmiş olur, yalnızca underline kalır. Bu durumda sınıf kaybını önlemek için önce var olan sınıflar alınmalı ve yeni sınıf eklenerek yeniden tanımlanmalıdır:

let current = div.getAttribute("class"); div.setAttribute("class", current + " highlight");

Bu yöntem çalışsa da, her seferinde sınıfı kontrol etmek, birleştirmek ve yeniden tanımlamak kodu uzatır ve hata riskini artırır.

Modern ve Güçlü Yöntem: classList Kullanımı

classList, HTML öğelerinin sınıflarını yönetmek için sunulan modern bir JavaScript özelliğidir. Bu özellik sayesinde sınıf eklemek, silmek, kontrol etmek ve değiştirmek çok daha kolay hale gelir.

classList.add()

Bir öğeye yeni bir sınıf eklemek için add() metodu kullanılır:

const section = document.querySelector("section"); section.classList.add("highlight");

Bu yöntem, var olan sınıfları bozmadan yenisini ekler. Aynı anda birden fazla sınıf da eklenebilir:

section.classList.add("highlight", "underline");

classList.remove()

Bir sınıfı silmek için remove() metodunu kullanabiliriz:

section.classList.remove("underline");

Bu kod, section öğesinden sadece underline sınıfını kaldırır, diğerlerine dokunmaz.

classList.contains()

Bir öğede belli bir sınıfın olup olmadığını kontrol etmek için contains() metodu kullanılır:

if (section.classList.contains("highlight")) { console.log("Highlight sınıfı mevcut."); }

Bu, özellikle hangi sınıfların aktif olduğunu kontrol etmemiz gereken durumlarda oldukça işe yarar.

classList.toggle()

toggle() metodu bir sınıfı açıp kapamak için kullanılır. Eğer sınıf öğede varsa siler, yoksa ekler:

section.classList.toggle("highlight");

Bu yöntem, butona tıklayınca görünümün değiştiği durumlar için oldukça kullanışlıdır. Örneğin, bir butona tıklayınca açıklama kutusunun açılıp kapanması gibi.

Uygulamalı Örnek

Diyelim ki sayfada bir başlık var ve tıklanınca bu başlığın altı çizilsin ve arka planı sarı olsun. CSS sınıflarımız şöyle olabilir:

.active { background-color: yellow; text-decoration: underline; }

JavaScript kodu ise şöyle olur:

const heading = document.querySelector("h1"); heading.addEventListener("click", function () { heading.classList.toggle("active"); });

Bu kod, her tıklamada active sınıfını ekler veya çıkarır. Yani başlık bir kez tıklanınca stil uygulanır, tekrar tıklanınca geri alınır.

Sonuç

JavaScript ile HTML öğelerine CSS sınıfı eklemek ve çıkarmak çok yaygın bir işlemdir. Bunu yaparken:

  • setAttribute() gibi eski yöntemler yerine,
  • classList özelliği ile gelen add, remove, contains, toggle gibi metodları kullanmak daha pratiktir.

Bu yöntemler sayesinde etkileşimli, kullanıcıya duyarlı ve dinamik web sayfaları oluşturmak mümkündür. Web geliştirme sürecinde classList kullanımı hem okunabilirliği artırır hem de daha az hata yapılmasını sağlar. Özellikle kullanıcı etkileşimi olan uygulamalarda, örneğin butonla açılıp kapanan menülerde veya aktif-pasif durumların görselleştirilmesinde bu özellik büyük kolaylık sağlar.

Etiketler

#Eğitimler#JavaScript Dersleri

İlgili Yazılar

Bu konuyla ilgili diğer yazılarımızı da inceleyebilirsiniz

Web Geliştirmede Neden JavaScript'e İhtiyacımız Var?
JavaScript Dersleri

Web Geliştirmede Neden JavaScript'e İhtiyacımız Var?

Web geliştirme, temel olarak üç ana yapı taşı üzerine kuruludur: **HTML, CSS ve JavaScript**. Bu üçlüden **HTML**, sayfanın iskeletini oluşturur, **CSS**, tasarımı ve görsel düzenlemeleri yapar

2 dk
JavaScript'e Giriş: JavaScript Nedir?
JavaScript Dersleri

JavaScript'e Giriş: JavaScript Nedir?

Web geliştirme yolculuğunuzda büyük bir adım atıyorsunuz! HTML ve CSS ile statik web sayfaları oluşturmayı öğrendiniz, ancak şimdi JavaScript ile sayfanıza hareket ve etkileşim katmanını eklemeye hazırsınız. JavaScript, web sayfalarını dinamik hale getiren ve kullanıcı etkileşimlerini yöneten

3 dk
JavaScript Değişkenler (Variables) Nedir?
JavaScript Dersleri

JavaScript Değişkenler (Variables) Nedir?

JavaScript, web geliştirme dünyasının en önemli dillerinden biridir. Dinamik web siteleri, interaktif uygulamalar, oyunlar ve animasyonlar gibi birçok alanda kullanılır. Ancak, bu tür gelişmiş uygulamalar oluşturabilmek için önce JavaScript'in temellerini anlamak gerekir. Bu

4 dk
JavaScript İlkel (Primitive) Veri Tipleri
JavaScript Dersleri

JavaScript İlkel (Primitive) Veri Tipleri

JavaScript, modern web geliştirmede vazgeçilmez bir programlama dilidir. Web sitelerini daha dinamik hale getirmek, etkileşim eklemek ve hatta oyunlar ve uygulamalar geliştirmek için kullanılır. Ancak, bu eğlenceli ve güçlü özelliklere ulaşmadan önce, JavaScript'in temellerin

4 dk
JavaScript'te Sayılar ve Matematiksel Operatörler
JavaScript Dersleri

JavaScript'te Sayılar ve Matematiksel Operatörler

JavaScript, modern web geliştirmede en yaygın kullanılan programlama dillerinden biridir. Bu dilde çalışırken sayılarla sıkça işlem yaparız. İster bir hesap makinesi uygulaması geliştiriyor olun, ister bir oyundaki puan sistemini kodluyor olun, sayılar kaçınılmaz bir parçadır. JavaScri

4 dk
JavaScript'te Boolean Veri Tipi
JavaScript Dersleri

JavaScript'te Boolean Veri Tipi

JavaScript'ı öğrenmeye yeni başlayanlar için veri tipleri oldukça önemlidir. Bu yazıda, en temel veri tiplerinden biri olan **Boolean (mantıksal) değerleri** inceleyeceğiz. Boolean değerleri, programlamada sıklıkla kullanılan ve kodlarımızın man

3 dk