0Pricing
CSS Academy · Ders

Açılır Menü ve Popover Kalıpları

CSS konumlandırmasını ve Popover API'sini kullanarak erişilebilir açılır menüler ve popover'lar oluşturun.

Açılır Menü ve Popover Kalıpları, CoddyKit'te ücretsiz bir CSS 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, CSS Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. CSS Academy kursu toplamda 4 dersten oluşur.

Açılır Pencere API'si

HTML Açılır Pencere API'si (Chrome 114+, geniş ölçüde desteklenir) bildirimsel gösterme/gizleme davranışı sağlar: hedefte popover özniteliği, tetikleyici düğmede popovertarget özniteliği. Dışarı tıklayarak kapatma ve Escape tuşu yönetimi dâhil temel açma/kapatma işlemleri için JavaScript gerekmez.

Açılır Pencereleri Biçimlendirme

Açılır pencere öğelerini [popover] veya :popover-open ile hedefleyin. Arka planı karartmak için ::backdrop sözde öğesi kullanılabilir. Açılır pencereler de iletişim kutuları gibi üst katmanda görüntülenir; z-index yığınlama sorunları yaşanmaz.

Bağlantı Konumlandırmayla Açılır Liste Konumlandırma

CSS Bağlantı Konumlandırması (Chrome 125+), açılır pencereyi JavaScript olmadan tetikleyicisine göre konumlandırır: tetikleyicide anchor-name: --btn, açılır pencerede position-anchor: --btn kullanın; ardından tetikleyicinin altına hizalamak için top: anchor(bottom); left: anchor(left) ayarlayın.

position: absolute ile Yedek Çözüm

Bağlantı Konumlandırması olmadan, konumlandırılmış bir üst sarmalayıcı kullanın: kapsayıcıda position: relative, açılır listede position: absolute; top: 100%; left: 0 kullanın. Bu yaklaşım tarayıcılar arasında çalışır; ancak tetikleyici ile açılır listenin konumlandırılmış bir kapsayıcıda kardeş öğeler olmasını gerektirir.

Açılır Liste CSS'i

Açılır listeyi şu şekilde biçimlendirin: position: absolute; background: var(--color-surface); box-shadow: var(--shadow-md); border-radius: var(--radius-md); padding: var(--spacing-1) 0; min-width: 200px. Menü öğelerinde iç boşluk, üzerine gelme arka planı ve tam genişlikte görüntüleme kullanın.

Canlandırma

Açılır pencerenin açılmasını @starting-style ile, display özelliği değişikliğini canlandırmak için de transition-behavior: allow-discrete ile canlandırın. Bu, açılır pencerenin açık veya kapalı durumuna bağlı yalnızca CSS ile giriş ve çıkış animasyonları oluşturmanızı sağlar.

Klavye Erişilebilirliği

Açılır listeler klavyeyi desteklemelidir: Ok tuşları menü öğeleri arasında gezinir, Enter/Boşluk odaklanılan öğeyi etkinleştirir, Escape menüyü kapatır ve odağı tetikleyiciye geri döndürür. Açılır Pencere API'si Escape işlemini otomatik olarak yönetir; ok tuşlarıyla gezinmek için JavaScript olay işleme gerekir.

Özel Açılır Listeler için ARIA

Özel açılır liste (açılır pencere API'si kullanılmıyorsa): tetikleyiciye aria-haspopup="listbox" ve aria-expanded, listeye role="listbox", her öğeye role="option" ve aria-selected ekleyin. Ekran okuyucular genişletilmiş durumu ve öğe sayısını duyurur.

Taşma ve Görünüm Alanı Çakışması

Tetikleyicisinin altına konumlandırılan bir açılır liste, görünüm alanının alt kısmında taşabilir. Bunu IntersectionObserver veya getBoundingClientRect ile algılayıp açılır listeyi tetikleyicinin üstüne çevirin. CSS Bağlantı Konumlandırması bunu position-try-fallbacks ile yönetir.

Çok Düzeyli Açılır Listeler

İç içe açılır listeler (alt menüler) karmaşıklık ekler. Alt menüleri üst öğelerinin sağına konumlandırın. Fare çapraz hareket ederken alt menülerin kapanmasını önlemek için fare dışına çıktığında gizlemeden önce bir gecikme ekleyin (CSS transition-delay veya JS zaman aşımı kullanarak).

Dokunmatik Cihazlarla İlgili Noktalar

Üzerine gelmeyle tetiklenen açılır listeler dokunmatik cihazlarda çalışmaz; dokunma cihazlarında üzerine gelme durumu yoktur. Her yerde tıklama/dokunma tetikleyicileri kullanın. Dışarı dokunarak kapatma, Açılır Pencere API'sinin hafif kapatma özelliğiyle veya açık açılır listeleri kapatan bir belge tıklama dinleyicisiyle çalışır.

Bilgi Kontrolü

Açılır Pencere API'si, daha önce özel JavaScript gerektiren hangi işlemleri otomatik olarak sağlar?

Özet

Açılır Pencere API'si ve CSS Bağlantı Konumlandırması birlikte, bildirimsel ve JavaScript'i en aza indiren açılır liste ve açılır pencere desenleri sağlar. Daha geniş tarayıcı desteği için konumlandırılmış kapsayıcı desenleri güvenilir biçimde çalışır. Klavye erişilebilirliği, ARIA öznitelikleri, görünüm alanı çakışmalarının yönetimi ve dokunmatik cihaz desteği, üretime hazır açılır liste bileşenlerini tamamlar.

Sıkça Sorulan Sorular

“Açılır Menü ve Popover Kalıpları” dersi ücretsiz mi?

Evet — “Açılır Menü ve Popover Kalıpları” 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 CSS Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. CSS Academy kursu toplamda 4 dersten oluşur.

“Açılır Menü ve Popover Kalıpları” dersinde ne öğreneceğim?

CSS konumlandırmasını ve Popover API'sini kullanarak erişilebilir açılır menüler ve popover'lar oluşturun. CSS 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.

CSS Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te CSS 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.

“Açılır Menü ve Popover Kalıpları” 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 CSS Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her CSS 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. CSS Özel Özellikleriyle Kart Bileşeni
  2. Modal ve İletişim Kutusu Stillendirme
  3. Açılır Menü ve Popover Kalıpları
  4. CSS :checked Tekniğiyle Sekme Bileşeni ve JS Karşılaştırması
← CSS Academy Sayfasına Dön