<nav> หรือ <เมนู> (HTML5)


102

W3Schools.com และฉันค่อนข้างแน่ใจว่าฉันจำได้ว่าเห็นสถานะ W3C.org ที่<menu>ควรใช้สำหรับเมนู Toolbar และแสดงรายการคำสั่งควบคุมฟอร์ม

ฉันควรใช้เมนูใดในเมนูหลัก Nav, หรือMenu? มันสำคัญหรือไม่?


38
คุณอาจต้องการที่จะอ่านw3fools
zzzzBov

'คำสั่งควบคุมรูปแบบ' คืออะไร?
Mads Skjern

คำตอบ:


162

navใช้สำหรับกลุ่มของลิงก์ภายใน ( aองค์ประกอบ) โดยทั่วไปหมายความว่าลิงก์ควรเดินทางไปยังเพจแยกกันหรือเปลี่ยนเนื้อหาในกรณีของเพจ AJAX คาดว่าเนื้อหาบางอย่างจะเปลี่ยนไปเมื่อคลิกที่navรายการ

menuถูกนำมาใช้สำหรับกลุ่มของการควบคุม ( a, input, button) โดยทั่วไปหมายความว่าอินพุตควรทำหน้าที่ภายในเพจ คาดว่าจะมีการโต้ตอบกับจาวาสคริปต์บางประเภทเมื่อคลิกที่menuรายการ

nav: การนำทางสำหรับไซต์

menu: เมนูสำหรับเว็บแอปพลิเคชัน


8
ข้อเท็จจริงที่น่าสนใจ: ข้อมูลจำเพาะช่วยให้สามารถซ้อน<li>องค์ประกอบได้โดยตรงภายใต้<menu>แท็กโดยไม่จำเป็นต้องมี<ul>รายการ ความต้องการคือว่า<menu>'s แอตทริบิวต์ที่ถูกมองข้ามหรือตั้งค่าtype "toolbar"ดูข้อกำหนดสำหรับองค์ประกอบและองค์ประกอบ <li><menu>
tomekwi

ใครช่วยชี้ให้ฉันดู<menu>ในข้อกำหนด W3C HTML5 อย่างใดอย่างหนึ่งได้ไหม ฉันพบในเวอร์ชัน WHAT WGแต่ไม่ใช่ในร่าง W3C HTML 5.3ล่าสุด
Garret Wilson



1

สถานที่ที่ดีที่สุดในการรับคำตอบคือ HTML 5 มาตรฐานที่พวกเขากำหนดเอง

เมนูที่กำหนดไว้ในHTML 5.1 ฉบับที่

มัน "... แสดงถึงกลุ่มคำสั่ง"


Navถูกกำหนดไว้ในHTML 5

มันคือ "... ส่วนของเพจที่เชื่อมโยงไปยังเพจอื่น ๆ หรือไปยังส่วนต่างๆภายในเพจ: ส่วนที่มีลิงก์การนำทาง"

มีบันทึกสำหรับการนำทางที่ฉันไม่ได้รวมไว้ แต่คิดว่ามีความสำคัญ แต่ฉันคิดว่าดีที่สุดสำหรับคุณที่จะได้รับคำจำกัดความจากมาตรฐาน

คำจำกัดความที่ทำเครื่องหมายในโพสต์นี้เนื่องจากคำตอบใกล้จะถูกต้อง แต่มีข้อความที่ไม่เกี่ยวข้องอยู่ในคำจำกัดความที่ทำให้คำตอบนั้นผิด


0

<nav>เป็นส่วน (เช่น<section>หรือ<article>) ดังนั้นจึงจะปรากฏในโครงร่างเอกสาร HTML ของคุณ ด้วยเหตุนี้ฉันจะใช้<menu>99% ของเวลา สำหรับฉันแล้ว<nav>เป็นการผสมผสานระหว่าง<section>และ<menu>กับการหดตัวที่เพิ่มเข้ามาซึ่ง<nav>ควรใช้สำหรับการนำทางโดยเฉพาะในขณะที่<menu>สามารถใช้กับอะไรก็ได้ที่อาจเรียกว่าเมนู (รวมถึงแถบนำทาง) ดังนั้นแถบนำทางส่วนใหญ่แม้ว่าจะเป็นแถบนำทาง แต่ก็ไม่เป็นไปตามข้อกำหนดที่เข้มงวด<nav>และ<menu>เหมาะสมกว่า

ฉันไม่เคยในอาชีพการพัฒนาเว็บไซต์ของฉันพบสถานการณ์ที่ฉันต้องการให้แถบนำทางเป็นส่วนหนึ่งของโครงร่างเอกสาร


1
สิ่งนี้ไม่ถูกต้อง คุณควรจะไม่ค่อย (ถ้าเคย) ใช้งาน<menu>ในเว็บไซต์ที่ไม่ได้เป็น app เว็บ - 99% ของเวลาที่นำทางของคุณ 'เมนู' จะมีการเชื่อมโยงแบบคงที่ไปยังหน้าอื่นหรือส่วนอื่น ๆ บนหน้าซึ่งเป็นสิ่งที่<nav>เป็นไปตาม ตามข้อกำหนด
Ivan Durst

@IvanDurst ประเด็นของฉันคือถ้าคุณสร้างเพียงรายการของลิงก์แบบคงที่navไม่ใช่ตัวเลือกแท็กที่ดีเนื่องจากnavเป็นองค์ประกอบของส่วนดังนั้นจึงจะกลายเป็นส่วนหนึ่งของโครงร่างเอกสารราวกับว่าเป็นส่วนที่มีส่วนหัวและเนื้อหา อันที่จริงนี่เป็นสถานการณ์ที่เกิดขึ้นได้ยากที่คุณต้องการให้คุณnavทำเหมือนส่วนหนึ่ง menuเป็นเพียงข้อเสนอแนะเพื่อทดแทนความหมาย ไม่เห็นมีอะไรใน spec บอกว่าใช้แบบนี้ไม่ได้ ดูเหมือนจะพอดี แต่ถ้าคุณเชื่อด้วยเหตุผลบางประการว่าเมนูนั้นมีไว้สำหรับสิ่งที่คุณกำหนดเป็นเว็บแอปเท่านั้นฉันขอแนะนำolหรือulเปลี่ยนแทน
Nick Manning

ตามตารางการทำงานร่วมกันที่นี่ , <menu>ยังคงได้รับการสนับสนุนที่ไม่ดีในขณะนี้ (เป็นความจริงหรือไม่ที่ Chrome ไม่มีการสนับสนุน) นอกจากนี้คุณสามารถบรรลุความหมายเดียวกันโดยrole="menu"ระบุแอตทริบิวต์ให้กับองค์ประกอบอื่น (เช่น div หรือ nav) แอ็ตทริบิวต์ role จะแทนที่ความหมายเริ่มต้นสำหรับองค์ประกอบใด ๆ
brennanyoung
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.