HTML Academy · Ders

Gölge DOM İçinde Kapsamlı Stiller

Yalnızca gölge ağacındaki öğeleri etkileyen CSS yazın

3. ders / 413 adım

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.

Başlamak ücretsiz

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

  1. attachShadow ve Gölge Kökü
  2. İçerik Dağıtımı için Slot Öğeleri
  3. Gölge DOM İçinde Kapsamlı Stiller
  4. Harici Stilleme için Part ve Exportparts
← HTML Academy Sayfasına Dön