Gölge DOM İçinde Kapsamlı Stiller
Yalnızca gölge ağacındaki öğeleri etkileyen CSS yazın
Gölge DOM İçinde Kapsamlı Stiller, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, HTML Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. HTML Academy kursu toplamda 4 dersten oluşur.
Varsayılan Olarak CSS Kapsüllemesi
Bir gölge kökü içindeki her <style> kuralı yalnızca o kökün içinde uygulanır. Gölge ağacındaki p { color: red } yalnızca o gölgenin içindeki paragrafları kırmızı yapar; ana belgedeki paragraflar etkilenmez ve ana belgedeki stiller gölgenin içine ulaşamaz.
Kapsülleme Neden Önemlidir
Kapsülleme, büyük uygulamaların onlarca yıldır yaşadığı genel CSS sorununu ortadan kaldırır. Bir bileşenin stilleri site CSS'si tarafından kazara geçersiz kılınamaz ve bileşen de siteyi kazara bozamaz. Bu sınır bir uzlaşı değil, belirtimdir.
The :host Sözde Sınıfı
Gölgenin içinden barındırıcı öğeyi :host ile biçimlendirin. Seçiciye göre kapsamlandırmak için :host(selector) kullanın: :host([open]) { display: block; }, yalnızca open özniteliği mevcut olduğunda barındırıcıyla eşleşir.
Devralınan Özellikler Yine Sınırı Aşar
Devralınan CSS özellikleri (color, font-family, line-height) devralma yoluyla gölge sınırını yine aşar. Belgenin body { color: blue } ayarı, gölge bunu açıkça geçersiz kılmadığı sürece gölge metnini de mavi yapar. Bu bir özelliktir: tipografi varsayılanları tutarlı kalır.
CSS Özel Özellikleri Sınırı Aşar
Özel özellikler (CSS değişkenleri) gölge köklerinden devralınır; bu da onları bir bileşenin tema oluşturma arayüzünü dışa açmanın standart yolu hâline getirir: gölgenin içinde --card-bg: var(--surface, white) tanımlayın ve tüketicilerin barındırıcıdaki --surface değerini geçersiz kılmasına izin verin.
/* Shadow */
:host {
background: var(--card-bg, white);
}
/* Page */
my-card {
--card-bg: #f3f4f6;
}Dış Biçimlendirme için ::part
Gölge içindeki bir öğeyi part="name" ile işaretleyin; böylece tüketiciler onu my-card::part(name) { ... } ile biçimlendirebilir. Gölge ağacının büyük bölümünü kapsüllenmiş tutarken tek tek öğeler için biçimlendirme kancaları sağlamak üzere part'ları kullanın.
Benimsenen Stil Sayfaları
shadowRoot.adoptedStyleSheets = [sheet], tek bir CSSStyleSheet'i birçok gölge kökü arasında paylaşarak tekrarlanan <style> ayrıştırmasını önler. Sayfaları new CSSStyleSheet() ile oluşturun ve sheet.replaceSync(cssText) kullanın. Tasarım sistemlerinde büyük bir performans kazanımı sağlar.
Bildirimlerin Sırası
<style> etiketlerini gölgenin innerHTML'inin en üstüne yerleştirin; böylece stiller DOM'un geri kalanı oluşturulmadan önce ayrıştırılır. Bu, stiller ayrıştırma sırasının geç bir aşamasında geldiğinde oluşan kısa süreli biçimlendirilmemiş içerik parlamasını önler.
Üst Öğe Temelli Kurallar için :host-context
:host-context(.dark-mode) :host, barındırıcıyı gölgenin dışındaki bir üst öğe seçicisine göre biçimlendirir. Üst düzey bir sarmalayıcıdaki sınıfa göre bileşenlere tema uygulamak için kullanışlıdır. Tarayıcı desteği iyidir, ancak hedef tarayıcı matrisinizde doğrulayın.
Genel Sıfırlama Dışarıda Kalır
Belge genelindeki CSS sıfırlamaları (body kenar boşlukları, box-sizing) gölge ağaçlarını etkilemez. Gerekli sıfırlamaları her gölge kökünde yeniden uygulayın veya her bileşene benimsenen oluşturulmuş bir stil sayfası aracılığıyla paylaşın.
Gölge Stillerinde Hata Ayıklama
Chrome DevTools, Öğeler panelinde gölge köklerini "#shadow-root (open)" altında gösterir. :host sözde sınıfı ve ::part kuralları dâhil olmak üzere gölge stillerini diğer CSS'ler gibi inceleyebilir, düzenleyebilir ve açıp kapatabilirsiniz.
Bilgi Kontrolü
CSS özel özellikleri (değişkenler), gölge DOM bileşenlerine tema uygulamak için neden tercih edilen yoldur?
Özet
Gölge DOM, stilleri iki yönde de kapsüller. Barındırıcıyı :host ile biçimlendirin, devralınan CSS özel özellikleri aracılığıyla tema kancaları sağlayın, tek tek öğeleri ::part ile biçimlendirmeye açın ve stil sayfalarını adoptedStyleSheets ile paylaşın. Belge genelindeki CSS sınırı aşmadığı için sıfırlamaları her gölge kökünde yeniden uygulayın.
Yapay zeka eğitmeniyle HTML öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 40
- Dersler
- 159
Sıkça Sorulan Sorular
“Gölge DOM İçinde Kapsamlı Stiller” dersi ücretsiz mi?
Evet — “Gölge DOM İçinde Kapsamlı Stiller” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve HTML Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. HTML Academy kursu toplamda 4 dersten oluşur.
“Gölge DOM İçinde Kapsamlı Stiller” dersinde ne öğreneceğim?
Yalnızca gölge ağacındaki öğeleri etkileyen CSS yazın HTML Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
HTML Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te HTML Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Gölge DOM İçinde Kapsamlı Stiller” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu HTML Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her HTML Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- attachShadow ve Gölge Kökü
- İçerik Dağıtımı için Slot Öğeleri
- Gölge DOM İçinde Kapsamlı Stiller
- Harici Stilleme için Part ve Exportparts