0Pricing
CSS Academy · Pelajaran

@scope untuk Gaya Terlingkup

Batasi jangkauan aturan CSS ke subpohon tertentu menggunakan aturan @scope.

@scope untuk Gaya Terlingkup adalah pelajaran CSS Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CSS Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CSS Academy mencakup 4 pelajaran total.

Apa Itu @scope?

Aturan @scope (Chrome 118+, Safari 17.4+) membatasi aturan CSS pada subtree tertentu dari DOM. Aturan di dalam @scope hanya berlaku untuk elemen dalam akar cakupan yang dideklarasikan, sehingga mencegah kebocoran gaya antarkomponen.

Sintaks Dasar

Deklarasikan cakupan dengan pemilih akar cakupan. Semua aturan di dalamnya hanya berlaku pada turunan akar cakupan yang cocok — bukan pada seluruh dokumen.

<div class="card">
  <div class="title">Scoped Title</div>
  <div class="body">Scoped body text &mdash; styles only apply inside .card.</div>
</div>

Akar Cakupan

Akar cakupan (@scope (.card)) menentukan titik masuk. Elemen di dalam cakupan yang cocok dengan .title akan diberi gaya. Elemen di luar .card yang memiliki kelas .title tidak terpengaruh — enkapsulasi gaya sejati tanpa DOM Bayangan.

Batas Cakupan

Anda dapat menentukan batas cakupan secara opsional dengan to: @scope (.card) to (.nested-card). Aturan berlaku di dalam .card, tetapi berhenti pada turunan .nested-card — membatasi gaya pada satu tingkat penyarangan komponen dan mengecualikan instans yang lebih dalam.

Kelas Semu :scope di Dalam @scope

Di dalam blok @scope, :scope merujuk ke elemen akar cakupan itu sendiri. @scope (.card) { :scope { border-radius: 8px; } } menerapkan gaya langsung ke elemen .card, bukan turunannya.

Spesifisitas Berdasarkan Kedekatan

@scope memperkenalkan spesifisitas berbasis kedekatan: ketika beberapa cakupan cocok dengan sebuah elemen, akar cakupan leluhur terdekat akan menang — terlepas dari spesifisitas pemilih. Ini mencegah gaya komponen yang sangat bersarang ditimpa oleh gaya dari cakupan leluhur yang jauh.

@scope dibandingkan dengan Modul CSS

Modul CSS menghasilkan nama kelas unik berbasis hash untuk menciptakan cakupan saat pembangunan—urusan pembundel JavaScript. @scope menciptakan cakupan secara native di peramban tanpa alat pembangunan, nama berbasis hash, atau sintaks khusus kerangka kerja—CSS murni.

@scope dibandingkan dengan DOM Bayangan

DOM Bayangan menciptakan isolasi gaya sepenuhnya—gaya eksternal tidak dapat menembusnya. @scope menciptakan isolasi sebagian—gaya dari luar masih dapat menjangkau elemen yang tercakup jika spesifisitasnya cukup tinggi. @scope adalah alternatif yang lebih ringan untuk mencakup komponen tanpa isolasi penuh.

Pelapisan dengan @scope

Gabungkan @scope dengan @layer untuk mengontrol kaskade secara terperinci: definisikan gaya yang tercakup untuk komponen di dalam sebuah lapisan komponen. Dengan cara yang dapat dikomposisikan, hal ini mengatur urutan kaskade (melalui lapisan) sekaligus cakupan gaya (melalui @scope), tanpa kerumitan penamaan kelas.

Kasus Penggunaan Praktis

Komponen sistem desain: cakup semua gaya tombol ke @scope (.button-group) agar gaya tombol di dalamnya tidak pernah merembes keluar. Isolasi widget: cakup gaya widget pihak ketiga ke wadahnya sehingga mencegah konflik dengan gaya global halaman.

Dukungan Peramban dan Cadangan

@scope didukung di Chrome 118+, Safari 17.4+, dan Firefox 128+. Pada peramban yang tidak mendukungnya, gaya di dalam @scope diabaikan—kaskade beralih ke gaya global. Gunakan @scope sebagai peningkatan progresif ketika pencakupan komponen bermanfaat tetapi tidak penting.

Pemeriksaan Pengetahuan

Masalah apa yang diselesaikan @scope yang sulit ditangani hanya dengan selektor CSS tradisional?

Ringkasan

@scope membatasi penerapan aturan CSS pada subpohon DOM yang dinyatakan, sehingga memungkinkan enkapsulasi gaya native tanpa DOM Bayangan atau pembentukan hash kelas oleh alat pembangunan. Batas cakupan, spesifisitas berdasarkan kedekatan, dan integrasinya dengan @layer menjadikannya primitif yang kuat untuk sistem desain dengan cakupan komponen dalam CSS murni.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “@scope untuk Gaya Terlingkup” gratis?

Ya — teks lengkap “@scope untuk Gaya Terlingkup” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CSS Academy, upgrade ke CoddyKit PRO. Kursus CSS Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “@scope untuk Gaya Terlingkup”?

Batasi jangkauan aturan CSS ke subpohon tertentu menggunakan aturan @scope. Kamu berlatih CSS Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai CSS Academy?

Tidak diperlukan pengalaman sebelumnya. CSS Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “@scope untuk Gaya Terlingkup” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran CSS Academy ini?

Ya. Setiap pelajaran CSS Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penyarangan CSS Bawaan
  2. Pseudo-kelas Relasional :has()
  3. @scope untuk Gaya Terlingkup
  4. API Transisi Tampilan
← Kembali ke CSS Academy