Filtreler

CSS Podcast - 023: Filtreler

Resmin üzerinde bulunan ve hafif opak, buzlu cam efekti olan bir öğe oluşturmanız gerektiğini düşünelim. Metnin resim değil, canlı metin olması gerekir. Bunu nasıl yapacaksınız?

CSS filtrelerinin ve backdrop-filter özelliklerinin kombinasyonu, gerçek zamanlı olarak efekt uygulamamıza ve gerekli olanları bulanıklaştırmamıza olanak tanır. Bulanıklık ve opaklık, kullanabileceğiniz çok sayıda filtreden ikisidir. Şimdi bu filtrelerin ne işe yaradığına ve nasıl kullanıldıklarına hızlıca göz atalım.

filter özelliği

Tarayıcı Desteği

  • 53
  • 12
  • Tayland bahtı
  • 9.1

Kaynak

filter için aşağıdaki filtrelerden birini veya daha fazlasını değer olarak uygulayabilirsiniz. Bir filtreyi yanlış uygularsanız filter için tanımlanan filtrelerin geri kalanı çalışmaz.

blur

Bu yöntem, gauss bulanıklığı uygular ve iletebileceğiniz tek bağımsız değişken radius, yani ne kadar bulanıklaştırma uygulandığıdır. Bunun, 10px gibi bir uzunluk birimi olması gerekir. Yüzde değerleri kabul edilmez.

.my-element {
    filter: blur(0.2em);
}

brightness

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

Bir öğenin parlaklığını artırmak veya azaltmak için parlaklık işlevini kullanın. Parlaklık değeri, değişmeyen resim %100 olarak ifade edilen bir yüzde değeri olarak ifade edilir. %0 değeri resmi tamamen siyah yapar. Bu nedenle% 0 ile% 100 arasındaki değerler resmin parlaklığını azaltır. Parlaklığı artırmak için% 100'ün üzerinde değerler kullanın.

.my-element {
    filter: brightness(80%);
}

contrast

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

Kontrastı azaltmak veya artırmak için sırasıyla% 0 ile% 100 arasında bir değer ayarlayın.

.my-element {
    filter: contrast(160%);
}

grayscale

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

grayscale() değeri olarak 1 değerini veya tamamen doymuş bir öğe için 0 değerini kullanarak tamamen gri tonlamalı bir efekt uygulayabilirsiniz. Yalnızca kısmi bir gri tonlama efekti uygulamak için yüzde veya ondalık değerler de kullanabilirsiniz. Hiçbir bağımsız değişken iletmezseniz öğe tamamen gri tonlamalı olur. %100'den büyük bir değer geçirirseniz bu değer %100 ile sınırlandırılır.

.my-element {
    filter: grayscale(80%);
}

invert

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

grayscale işlevinde olduğu gibi, açmak veya kapatmak için invert() işlevine 1 veya 0 aktarabilirsiniz. Bu özellik açıldığında, öğenin renkleri tamamen tersine çevrilir. Ayrıca, renklerin yalnızca kısmi ters çevirmesini uygulamak için yüzde veya ondalık değerler de kullanabilirsiniz. invert() işlevine herhangi bir bağımsız değişken iletmezseniz öğe tamamen ters çevrilir.

.my-element {
    filter: invert(1);
}

opacity

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

opacity() filtresi, opacity özelliği gibi çalışır. Burada, opaklığı artırmak veya azaltmak için bir sayı ya da yüzde iletebilirsiniz. Hiçbir bağımsız değişken iletmezseniz öğe tamamen görünür.

.my-element {
    filter: opacity(0.3);
}

saturate

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

Doygunluk filtresi, brightness filtresine çok benzer ve aynı bağımsız değişkeni kabul eder: sayı veya yüzde. saturate, parlaklık efektini artırmak veya azaltmak yerine renk doygunluğunu artırır veya azaltır.

.my-element {
    filter: saturate(155%);
}

sepia

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

Bu filtreyle grayscale() gibi çalışan bir sepya tonu efekti ekleyebilirsiniz. Sepya tonu, sıcak tutmak amacıyla siyah tonları kahverengi tonlara dönüştüren bir fotoğraf baskı tekniğidir. sepia() için bağımsız değişken olarak bir sayı veya yüzde iletebilirsiniz. Bu, etkiyi artırır veya azaltır. Hiçbir bağımsız değişken iletilmediğinde tam sepya etkisi eklenir (sepia(100%) ile eşdeğerdir).

.my-element {
    filter: sepia(70%);
}

hue-rotate

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

hsl dokümanındaki tonun, renk çemberinin dönüşüne nasıl referans verdiğini renkler dersinde öğrenmiştiniz ve bu filtre de benzer şekilde çalışıyor. Derece veya dönüş gibi bir açıdan geçerseniz öğenin tüm renklerinin tonunu değiştirir ve referans olduğu renk çemberinin parçasını değiştirir. Hiçbir bağımsız değişkeni iletmezsen, hiçbir şey yapmaz.

.my-element {
    filter: hue-rotate(120deg);
}

drop-shadow

Tarayıcı Desteği

  • 18
  • 12
  • Tayland bahtı
  • 6

Kaynak

drop-shadow ile Photoshop gibi bir tasarım aracında yaptığınız gibi kıvrımlı bir gölge uygulayabilirsiniz. Bu gölge, bir alfa maskesine uygulandığından kesit resmine gölge eklemek açısından çok kullanışlıdır. drop-shadow filtresi boşlukla ayrılmış ofset-x, ofset-y, bulanıklaştırma ve renk değerlerini içeren bir gölge parametresi alır. box-shadow ile neredeyse aynı ancak inset anahtar kelime ve dağılım değeri desteklenmiyor.

.my-element {
    filter: drop-shadow(5px 5px 10px orange);
}

Gölgeler modülündeki farklı gölge türleri hakkında daha fazla bilgi edinin.

url

Tarayıcı Desteği

  • 5
  • 12
  • 3
  • 6

Kaynak

url filtresi, bağlı bir SVG öğesinden veya dosyasından SVG filtresi uygulamanıza olanak tanır. SVG filtreleri hakkında daha fazla bilgiyi buradan edinebilirsiniz.

Arka plan filtresi

Tarayıcı Desteği

  • 76
  • 17
  • 103
  • 9

Kaynak

backdrop-filter özelliği, aynı filtre işlevi değerlerinin tümünü filter ile kabul eder. backdrop-filter ile filter arasındaki fark, backdrop-filter özelliğinin filtreleri yalnızca arka plana uygulamasıdır. Burada filter özelliği, arka planı öğenin tamamına uygular.

Bu dersin hemen başındaki örnek mükemmel bir örnektir. Çünkü metnin bulanıklaştırılmasını ve ideal olarak da fazladan HTML öğeleri eklemek zorunda kalmazsınız. Filtreleri yalnızca arka plana uygulayabilmek bu işlemi mümkün kılar.

Öğrendiklerinizi sınayın

Filtreler hakkındaki bilginizi test edin

Aşağıdakilerden hangileri CSS filtre işlevleridir?

grayscale()
🎉
invert()
🎉
flip()
Tekrar deneyin.
multiply()
Tekrar deneyin.
blur()
🎉
brightness()
🎉

CSS, SVG filtrelerini kullanabilir mi?

Evet
url() filtre işlevi,
Hayır
Tekrar deneyin.