Part dan Exportparts untuk Gaya Eksternal
Buka bagian shadow DOM untuk CSS eksternal dengan part dan exportparts.
Part dan Exportparts untuk Gaya Eksternal adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.
Kompromi Enkapsulasi
Enkapsulasi gaya yang ketat dari Shadow DOM mencegah pengguna menata ulang elemen individual di dalam komponen. Variabel CSS dapat digunakan untuk properti global, tetapi Anda tidak dapat, misalnya, memberikan radius batas khusus pada tombol internal "close". Part mengatasi hal ini.
Atribut part
Tandai elemen internal shadow dengan part="name". Pengguna kemudian dapat menargetkannya dengan pseudo-elemen ::part(name): my-dialog::part(close-button) { color: red; }. Elemen bernama tersebut menjadi kait penataan gaya, sementara bagian shadow lainnya tetap terenkapsulasi.
// Shadow tree:
<button part="close-button">×</button>
// Page CSS:
my-dialog::part(close-button) {
color: red;
border-radius: 50%;
}Beberapa part pada Satu Elemen
Pisahkan nama dengan spasi untuk mengekspos satu elemen sebagai beberapa part: part="button primary". ::part(button) menargetkannya secara umum, sedangkan ::part(primary) menargetkannya sebagai elemen bergaya utama. Setiap nama dicocokkan secara terpisah.
Keterbatasan ::part
::part hanya mengizinkan pseudo-kelas tertentu (:hover, :focus, :disabled)—bukan penggabung turunan atau pemilihan struktural lanjutan. ::part(card) p tidak valid; Anda tidak dapat menjangkau bagian dalam part dengan selector turunan.
exportparts Meneruskan part
Ketika sebuah elemen khusus menyarangkan elemen khusus lain di dalam shadow-nya sendiri, part elemen bagian dalam biasanya tidak ditampilkan ke halaman luar. exportparts="close-button" pada elemen bersarang meneruskan part tersebut ke host luar.
// Outer shadow:
<inner-element exportparts="close-button"></inner-element>
// Page:
outer-element::part(close-button) { color: red; }Mengganti Nama saat Mengekspor
exportparts="close-button: dismiss" mengekspor part bagian dalam dengan nama baru pada elemen luar. Ini memungkinkan komponen luar menyediakan permukaan penamaan yang rapi, terlepas dari elemen internal yang digunakannya.
part vs Properti Kustom CSS
Properti kustom mengekspos nilai (warna, jarak, font). Part mengekspos elemen (seluruh permukaan CSS—batas, transformasi, animasi). Gunakan properti kustom untuk token global dan part untuk kustomisasi tingkat elemen yang spesifik. Keduanya dapat digunakan bersama pada komponen yang sama.
Pola Pemberian Tema
Praktik sistem desain: tampilkan sejumlah kecil part untuk elemen yang paling sering dikustomisasi (tombol, header, indikator), ditambah sekumpulan properti kustom yang lengkap untuk warna, jarak, dan tipografi. Pengguna dapat memberi tema pada tingkat nilai atau tingkat elemen, sesuai kebutuhannya.
Stabilitas Nama part
Nama part menjadi bagian dari API publik komponen—mengubahnya akan merusak CSS pengguna. Pilih nama yang menjelaskan peran elemen ("close-button", "header", "track"), bukan posisinya ("first-button"), agar API tetap bermakna seiring berkembangnya implementasi.
Petunjuk Dokumentasi
Daftarkan semua part yang tersedia (beserta part yang diekspor) di berkas readme komponen. Tanpa dokumentasi, pengguna harus memeriksa DOM untuk menemukan part, sehingga mereka terikat pada apa pun yang kebetulan ditemukan. Perlakukan daftar part seperti daftar properti pada komponen kerangka kerja.
Dukungan Peramban
::part dan exportparts tersedia di semua peramban modern. Bahkan versi Safari yang lebih lama kini mendukung ::part. Gunakan dengan bebas; untuk peramban yang sangat lama (sebagian besar sudah tidak digunakan), gunakan properti kustom CSS tambahan sebagai alternatif.
Uji Pemahaman
Apa yang dilakukan atribut exportparts?
Ringkasan
Atribut part mengekspos elemen shadow individual untuk penataan gaya eksternal melalui ::part(name)—dengan kemampuan CSS penuh tanpa merusak enkapsulasi. exportparts meneruskan part dari elemen khusus bersarang ke host luar, dan dapat mengganti namanya. Gabungkan part dengan properti kustom CSS untuk menyediakan permukaan tema yang lengkap, dan dokumentasikan daftar part sebagai bagian dari API komponen.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Part dan Exportparts untuk Gaya Eksternal” gratis?
Ya — teks lengkap “Part dan Exportparts untuk Gaya Eksternal” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Part dan Exportparts untuk Gaya Eksternal”?
Buka bagian shadow DOM untuk CSS eksternal dengan part dan exportparts. Kamu berlatih HTML 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 HTML Academy?
Tidak diperlukan pengalaman sebelumnya. HTML 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 4 dari 4.
Berapa lama pelajaran “Part dan Exportparts untuk Gaya Eksternal” 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 HTML Academy ini?
Ya. Setiap pelajaran HTML 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
- attachShadow dan Shadow Root
- Elemen Slot untuk Distribusi Konten
- Gaya dengan Cakupan di Dalam Shadow DOM
- Part dan Exportparts untuk Gaya Eksternal