<nav> veya <menu> (HTML5)


102

W3Schools.com ve <menu>Araç Çubuğu menüleri ve liste form kontrol komutları için kullanılması gereken W3C.org durumunu gördüğümü hatırladığımdan oldukça eminim .

Peki ana menüm için hangisini kullanmalıyım? Navveya Menu? Önemli mi?



'Form kontrol komutu' nedir?
Mads Skjern

Yanıtlar:


162

naviç bağlantı grupları ( aelemanlar) için kullanılır. Genel olarak bu, bağlantıların ayrı sayfalara gitmesi veya bir AJAX sayfası olması durumunda içeriği değiştirmesi gerektiği anlamına gelir. Bir navöğeye tıkladığınızda bir tür içerik değişikliği bekleyin .

menukontrol grupları için kullanılır ( a, input, button). Genellikle bu, girişlerin sayfa içinde bir işlev gerçekleştirmesi gerektiği anlamına gelir. Bir menuöğeye tıkladığınızda bir tür javascript etkileşimi bekleyin .

nav: site için gezinme .

menu: bir web uygulamasının menüsü .


8
İlginç gerçek: Spesifikasyon, <li>öğeleri <menu>bir <ul>listeye gerek kalmadan doğrudan bir etiketin altına yerleştirmeye izin verir . Gereklilik, <menu>'s typeözniteliğinin atlanması veya olarak ayarlanmasıdır "toolbar". Belirtimi bakınız eleman ve elemanın . <li><menu>
tomekwi

Birisi beni <menu>W3C HTML5 özelliklerinden birine yönlendirebilir mi? Bunu WHAT WG sürümünde buluyorum , ancak en son W3C HTML 5.3 taslağında bulmuyorum .
Garret Wilson

10

İşte nasıl farklı olduğuna dair bir bölüm içeren bir HTML5Doctor gönderisinavmenu (temelde, gerçek uygulamalarda kullanın). İstediğin gibi görünüyor nav.



1

Bu yanıtı almanın en iyi yeri HTML 5 standartlarının kendileri.

Menü , HTML 5.1 2. Baskı'da tanımlanmıştır .

"... bir komut grubunu temsil eder."


Gezinme , HTML 5'te tanımlanmıştır .

Bu, "... bir sayfanın diğer sayfalara veya sayfa içindeki bölümlere bağlanan bölümü: gezinme bağlantılarının olduğu bir bölüm."

Dahil etmediğim ancak önemli olduğunu düşündüğüm nav notları var, ancak tanımı standartlardan kendiniz almanızın en iyisi olduğunu düşünüyorum.

Bu yazıda yanıt olarak işaretlenen tanımlar doğruya yakındır, ancak içlerinde yanıtı yanlış kılan gereksiz ifadeler vardır.


0

<nav>bir bölümdür ( <section>veya gibi <article>), bu yüzden HTML belgenizin ana hatlarında görünecektir. Bu nedenle <menu>, zamanın% 99'unu kullanırdım . Bana göre, <nav>aralarında bir karışımıdır <section>ve <menu>katma daralma ile, <nav>oysa navigasyon için özel olarak kullanılmalıdır <menu>(bir gezinti çubuğu dahil) bir menü olarak adlandırabileceğimiz şey için olabilir. Bu nedenle, gezinme çubuklarının çoğu, gezinme çubuğu olmalarına rağmen, katı gereksinimlerine uymaz <nav>ve <menu>daha uygundur.

Web geliştirme kariyerimde hiçbir zaman gezinme çubuğumun belge taslağının bir parçası olmasını istediğim bir durum bulamadım.


1
Bu yanlış. Sen gerektiğini nadiren (hiç değilse) kullanımı <menu>bir web uygulaması olmayan bir web sitesinde -% 99 zaman, navigasyon menüsü 'ne sayfasında, diğer sayfalara veya diğer bölümlere statik bağlantılar olacak <nav>, içindir göre şartnameye göre.
Ivan Durst

@IvanDurst, demek istediğim, eğer sadece statik bağlantılardan oluşan bir liste oluşturuyorsanız, naviyi bir etiket seçimi değildir nav, çünkü bir bölüm elemanıdır, bu yüzden bir başlık ve içeriğe sahip bir bölüm gibi belge taslağının bir parçası haline gelecektir. Bu aslında navbir bölüm gibi davranmanızı istediğiniz nadir bir senaryodur . menuanlamsal bir ikame olarak sadece bir öneriydi. Spesifikasyonda bu şekilde kullanılamayacağını söyleyen hiçbir şey görmüyorum. Uygun görünüyor. Ancak herhangi bir nedenle menünün yalnızca bir web uygulaması olarak tanımladığınız şey için olduğuna inanıyorsanız, o zaman tavsiye ederim olveya ulbir yedek olarak.
Nick Manning

Uyumluluk Tabloya göre burada , <menu>şu anda hala zayıf desteği vardır. (Chrome'un bunu desteklemediği gerçekten doğru mu?) Ayrıca, role="menu"özniteliği başka bir öğeye (örneğin, bir div veya nav) sağlayarak aynı anlamsallığı elde edebilirsiniz . Role özniteliği, herhangi bir öğe için varsayılan semantiği geçersiz kılar.
brennanyoung
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.