2010-11-18 11 views
2

Dolayısıyla, menü öğelerinin bir listesini kullanıyorum ve her bir öğenin özellikleri için sınıf özniteliklerine veya tanım listelerine sahip yaylar kullanmam gerekip gerekmediğini anlamaya çalışıyorum. İşte iki seçenek ben düşünüyorum şunlardır:Bir tanım listesinde () tanım terimini (<dl>) gizlemek (göster: yok:) tamam mı?

Seçenek 1)

// HAML Markup 

%article.menu-item 
    %span.name 
    Cereal 
    %span.price 
    4.00 
    %span.description 
    We carry Cap'n Crunch, Frooty Loops and Count Chocula. Milk included. 

// Styling 

article.menu-item { 
    .price:before { content: "$"; } 
} 

Seçenek 2)

// HAML Markup 

%article.menu-item 
    %dl 
    %dt 
     Item 
    %dd 
     Cereal 
    %dt 
     Price 
    %dd 
     4.00 
    %dt 
     Description 
    %dd 
     We carry Cap'n Crunch, Frooty Loops and Count Chocula. Milk included. 

// Styling 

article.menu-item { 
    .price:before { content: "$"; } 
    dt { display: none; } 
} 

Şu anda 1. seçeneği kullanarak, ancak bazı nedeni seçeneği için iki görünür bana ediyorum ürünü tanımladığı için semantik olarak daha zengin olmak. Hangi seçenekle birlikte gitmeli ve neden?

+3

Güzel bıyık. – Marko

+0

Marko, Sebastian, iltifat için teşekkürler. Bir tane de büyütmelisin. –

cevap

3

Eğer ikinci ile gidecekseniz display: none; kullanmamalısınız. Ekrandaki metinleri ekrandan ayırmak daha iyi olur, böylece ekran okuyucuları buna ulaşabilir.

dt { 
    position: absolute; 
    left: -9999px; 
    top: -9999px; 
} 
+1

iyi nokta, accesiblity anahtardır –

+1

Sadece yinelemeye ihtiyacım var, güzel bıyık. –

+1

Aslında, bu erişilebilirliğin kullanıcı için yararlı veya yorucu olup olmadığını merak ediyorum. Bu, diğer öğelerle dolu bir menüde görünecek, dolayısıyla bir ekran okuyucuya sahip birinin de isim/fiyat/tanımlamayı gizleyeceğini, aksi takdirde bu kelimeleri tekrar tekrar dinlemek zorunda kalacağını düşünüyorum. –

3

Semantik olarak daha zengin kod (2) ile devam edip dt dosyasını saklıyorum. Belki de sakladığınız dts hakkında daha spesifik olun: article.menu-item.dt {display: none }. Metni daha okunabilir hale getirecek ve kodunuzdaki yayılma ve div çorbasından kaçınılacaktır.

+0

ve btw. güzel stache. yeterince zaman söyleyemeyiz –

İlgili konular