CSS’te tüm özelliklere atanan 4 değer vardır. initial, inherit, unset ve revert. Burada bu değerlere değineceğiz. unset ‘ten bir önceki yazımda bahsettik. Yaptıkları iş aynı olsa da uygulandıklarında farklı davranış sergilerler. Yaptıkları iş atamaları geri almak. Amiyane tabirle geri vites.

Bu makaledeki değerleri anlamak için CSS’te değerlerin nasıl uygulandığını hatırlamak gerekiyor. Burada genel anlamıyla bir değerin nasıl uygulandığını anlatalım.

Bu konuyu 1. kitabımdaki 4.bölümünde bahsetmiştim. Belki ileride başka bir yazıda daha detaylı bir makale yazabiliriz bu konuda.

Basamaklı (cascade) yapı

CSS değerleri atandığında eğer bu tanım ve değer tek ise direk uygulanır ancak CSS tanımlarının çakışması durumunda çözümü sağlayan Basamaklı yapıdır (Cascade).

Örneğin font-size tanımı birden fazla css dosyasında veya bir dosya içinde birden fazla tanımlanmış olabilir.

CSS’e bu tanımlar 3 ana kaynaktan gelir.

  1. Geliştiricinin eklediği değerler. Kodu yazan geliştirici.

  2. Kullanıcının tarayıcı ayarlarında tanımladığı değerler. Tarayıcıyı kullanan son kullanıcı.

  3. Tarayıcının kabul ettiği bağlangıç değeri. Tarayıcı kabulleri

Basamaklı yapı bu üç kaynağı birleştirir. Aynı tanımların atandığı durumlar için önem, etkinlik ve sıralama ölçüsünü dikkate alarak sonuç değerini bulur ve uygular.

Son kullanıcının tarayıcı ayarlar kısmından yaptığı atamalar (2. nolu seçenek) genelde göz ardı edilir.

Aşağıda tanımlayacağımız değerler bu 2 kaynaktan gelen atamaları geri alamaya yöneliktir.

initial (başlangıç) değeri

initial değeri tarayıcıların atadığı başlangıç değerini ifade eder. Atandığı elemanın özelliğinin değerini tarayıcının belirlediği değere döndürür.

Tarayıcılar HTML elemanlarını yorumlarken belirli başlangıç değerleri kabul ederek yorumlarlar. User Agent Stilleri olarak adlandırılan bu özelliklere sonradan tanımlanan CSS özellikleri ezer. Her tarayıcının kendine özel UA Stillleri vardır. CSS3 ile gelen initial değeri ile başlangıç değerine döndürme imkanımız oluyor.

Örnekte görüldüğü gibi kapsayıcı div elemanına atanan kırmızı rengi ilk paragraf için initial değeri ile tarayıcının ilk kabul değerine(siyah) döndürülmüştür.

Tarayıcı Desteği

Chrome explorer Firefox
+ - +

Mobil Tarayıcılar

Chrome Mobil Safari Samsung Internet
+ + +

inherit (kalıtsal) değeri

inherit değeri ebveyn elemanların alttaki elemanlara aktardığı değeri gösterir. Ebeveyn elemanda bir tanım yoksa revert gibi davranır. Atandığı elemanın özelliğinin değerini varsa ebeveyninde bulunan değere döndürür.

Kalıtsallığı kullanarak kodlarımızı azaltabiliriz. Ancak kalıtsallık nedeni ile de birçok sorunla karşılaştığımızı da unutmayalım.

Tarayıcı Desteği

Chrome explorer Firefox
+ + +

Mobil Tarayıcılar

Chrome Mobil Safari Samsung Internet
+ + +

unset (sıfırlama)

Bir önceki makalede yazdığımız gibi unset değeri atanan bir özellik eğer kalıtsal bir değer alıyorsa kalıtsal değerine döndürür, kalıtsal değeri yoksa başlangıç değerine döndüren bir kısayoldur.

Tarayıcı Desteği

Chrome explorer Firefox
+ - +

Mobil Tarayıcılar

Chrome Mobil Safari Samsung Internet
+ + +

revert (geri alma)

Bir elemana revert değeri atandığında geliştiricinin atadığı değerleri geri alır.

unset ile revert değerlerinin farkı: unset hem browser’ın hem de geliştiricinin atadığı değeri sıfırlarken, revert ise sadece geliştiricinin atamalarını sıfırlar.

not revert ve unset önceki atamaları siler ancak kalıtsallık aktiftir. Kalıtsallığı da etkisiz hale getirmek istiyorsanız. Bir elemana geliştiricinin atama yapmadığından eminseniz, ebebeynine initial ataması yapıp, eleman da revert tanımıyla bunu sağlayabilirsiniz.

Tarayıcı desteği konusunda initial, inherit ve unset iyiyken revert blink grubunun desteği olmadığı için düşük kalmış.

Tarayıcı Desteği

Chrome explorer Firefox
- - +

Mobil Tarayıcılar

Chrome Mobil Safari Samsung Internet
- + -

Šime Vidas‘ın yazısında ki çağrısını ben de burada tekrarlıyayım. Google bug sayfasındaki yıldıza bir tıklama da siz ekleyin.

Kalın sağlıcakla.

Kaynaklar

CSS'de lightdark() fonksiyonuyla kolayca koyu / açık mod yazımı

CSS'de lightdark() fonksiyonuyla kolayca koyu / açık mod yazımı Devamını oku

field-sizing özelliği

05 August 2024 tarihinde yayınlandı.