Filter

Podcast CSS - 023: Filter

Misalnya, Anda perlu membuat elemen yang memiliki efek kaca buram yang sedikit buram yang berada di atas gambar. Teks harus berupa teks langsung, bukan gambar. Bagaimana Anda melakukannya?

Kombinasi filter CSS dan backdrop-filter memungkinkan kita menerapkan efek dan memburamkan yang diperlukan secara real time. Blur dan opasitas adalah dua dari banyak filter yang tersedia. Jadi, mari kita bahas apa yang dilakukan dan cara menggunakannya.

Properti filter

Dukungan Browser

  • 53
  • 12
  • 35
  • 9.1

Sumber

Anda dapat menerapkan satu atau beberapa filter berikut sebagai nilai untuk filter. Jika Anda salah menerapkan filter, filter lain yang ditentukan untuk filter tidak akan berfungsi.

blur

Ini akan menerapkan blur gaussian dan satu-satunya argumen yang dapat Anda teruskan adalah radius, yaitu berapa tingkat blur yang diterapkan. Ini harus berupa satuan panjang, seperti 10px. Persentase tidak diterima.

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

brightness

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Untuk menambah atau mengurangi kecerahan elemen, gunakan fungsi kecerahan. Nilai kecerahan dinyatakan sebagai persentase dengan gambar yang tidak berubah dinyatakan sebagai nilai 100%. Nilai 0% akan mengubah gambar sepenuhnya menjadi hitam, oleh karena itu, nilai antara 0% dan 100% membuat gambar kurang terang. Gunakan nilai di atas 100% untuk meningkatkan kecerahan.

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

contrast

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Tetapkan nilai antara 0% dan 100% untuk mengurangi atau meningkatkan kontras.

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

grayscale

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Anda dapat menerapkan efek hitam putih sepenuhnya menggunakan 1 sebagai nilai untuk grayscale(), atau 0 agar memiliki elemen yang benar-benar tersaturasi. Anda juga dapat menggunakan nilai persentase atau desimal untuk hanya menerapkan efek hitam putih sebagian. Jika Anda tidak meneruskan argumen, elemen akan benar-benar menjadi hitam putih. Jika Anda meneruskan nilai yang lebih besar dari 100%, nilai tersebut akan dibatasi hingga 100%.

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

invert

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Sama seperti grayscale, Anda dapat meneruskan 1 atau 0 ke fungsi invert() untuk mengaktifkan atau menonaktifkannya. Saat aktif, warna elemen akan sepenuhnya dibalik. Anda juga dapat menggunakan nilai persentase atau desimal untuk hanya menerapkan inversi warna sebagian. Jika Anda tidak meneruskan argumen apa pun ke dalam fungsi invert(), elemen akan sepenuhnya dibalik.

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

opacity

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Filter opacity() berfungsi seperti properti opacity, tempat Anda dapat meneruskan angka atau persentase untuk meningkatkan atau mengurangi opasitas. Jika Anda tidak meneruskan argumen, elemen akan terlihat sepenuhnya.

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

saturate

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Filter saturate sangat mirip dengan filter brightness dan menerima argumen yang sama: angka atau persentase. saturate menambah atau mengurangi saturasi warna, bukan menambah atau mengurangi efek kecerahan.

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

sepia

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Anda dapat menambahkan efek rona warna cokelat keabu-abuan dengan filter ini yang berfungsi seperti grayscale(). Warna sepia adalah teknik cetak fotografi yang mengubah rona hitam menjadi coklat untuk menghangatkan warna tersebut. Anda dapat meneruskan angka atau persentase sebagai argumen untuk sepia() yang akan meningkatkan atau mengurangi efek. Meneruskan argumen tidak akan menambahkan efek sepia penuh (setara dengan sepia(100%)).

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

hue-rotate

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Anda telah mempelajari bagaimana hue di hsl merujuk pada rotasi roda warna dalam tutorial warna, dan filter ini berfungsi dengan cara yang sama. Jika Anda meneruskan sudut, seperti derajat atau belokan, hue semua warna elemen akan berubah, dan bagian roda warna yang menjadi referensinya akan berubah. Jika Anda meneruskan argumen, tidak akan melakukan apa pun.

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

drop-shadow

Dukungan Browser

  • 18
  • 12
  • 35
  • 6

Sumber

Anda dapat menerapkan drop shadow dengan pelukan melengkung seperti yang Anda lakukan di alat desain, seperti Photoshop dengan drop-shadow. Bayangan ini diterapkan ke mask alfa yang membuatnya sangat berguna untuk menambahkan bayangan ke gambar potongan. Filter drop-shadow mengambil parameter bayangan yang berisi nilai offset-x, offset-y, blur, dan warna yang dipisahkan spasi. Nama ini hampir identik dengan box-shadow, tetapi kata kunci inset dan nilai selisih tidak didukung.

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

Pelajari lebih lanjut berbagai jenis bayangan dalam modul shadows.

url

Dukungan Browser

  • 5
  • 12
  • 3
  • 6

Sumber

Filter url memungkinkan Anda menerapkan filter SVG dari elemen atau file SVG yang ditautkan. Anda dapat membaca selengkapnya tentang filter SVG di sini

Filter tampilan latar

Dukungan Browser

  • 76
  • 79
  • 103
  • 18

Sumber

Properti backdrop-filter menerima semua nilai fungsi filter yang sama seperti filter. Perbedaan antara backdrop-filter dan filter adalah bahwa properti backdrop-filter hanya menerapkan filter ke latar belakang, tempat properti filter menerapkannya ke seluruh elemen.

Contoh tepat di awal pelajaran ini adalah contoh yang tepat, karena Anda tidak ingin teks diburamkan dan idealnya Anda tidak ingin menambahkan elemen HTML tambahan. Kemampuan menerapkan filter hanya ke tampilan latar memungkinkan hal tersebut.

Menguji pemahaman Anda

Uji pengetahuan Anda tentang filter

Manakah dari berikut ini yang merupakan fungsi filter CSS?

grayscale()
🎉
invert()
🎉
flip()
Coba lagi.
multiply()
Coba lagi.
blur()
🎉
brightness()
🎉

Bisakah CSS menggunakan filter SVG?

Ya
Fungsi filter url() memungkinkan hal ini
Tidak
Coba lagi.