วิธีผสมลิงก์ (<a> แท็ก) และส่วนหัว (แท็ก <h1>) ในมาตรฐานเว็บ


95

รหัสที่ถูกต้องในการสร้างลิงค์กับหัวข้อ 1 ตามมาตรฐานเว็บคืออะไร?

ใช่ไหม

<h1><a href="http://stackoverflow.com"> stackoverflow </a></h1>

หรือ

<a href="http://stackoverflow.com"><h1> stackoverflow </h1></a>

ขอบคุณ

คำตอบ:


143

ตามมาตรฐานเว็บคุณไม่ได้รับอนุญาตให้ใส่องค์ประกอบบล็อกในองค์ประกอบแบบอินไลน์

เนื่องจากh1เป็นองค์ประกอบบล็อกและaเป็นองค์ประกอบแบบอินไลน์วิธีที่ถูกต้องคือ:

<h1><a href="#">This is a title</a></h1>

นี่คือลิงค์เพื่อให้คุณสามารถเรียนรู้เพิ่มเติม: w3 รูปแบบการจัดรูปแบบภาพ

แต่มีข้อยกเว้นว่าใน HTML5 มันถูกต้องในการห่อองค์ประกอบระดับบล็อก (ชอบdiv, pหรือh*) ในแท็กสมอ การห่อองค์ประกอบระดับบล็อกในองค์ประกอบแบบอินไลน์นอกเหนือจากจุดยึดยังคงขัดต่อมาตรฐาน


19
ใน HTLM5 สิ่งนี้มีการเปลี่ยนแปลง ตัวอย่างทั้งสองจะตรวจสอบ - validator.w3.org
Atadj

ทำได้ดีนี่. มันเป็นความผิดพลาดที่ทำได้ง่ายและในขณะที่ทั้งสองจะตรวจสอบความถูกต้องของมันว่าองค์ประกอบแบบอินไลน์ตามธรรมชาติควรเป็นลูกหลานขององค์ประกอบระดับบล็อก
bigmadwolf

@pushplaybang - ฉันจะบอกว่ามันมีความหมายมากกว่าที่จะตัดส่วนหัวในลิงก์เว้นแต่ว่าควรจะคลิกเพียงบางส่วนของส่วนหัวเท่านั้น (ฉันไม่สามารถนึกถึงกรณีการใช้งานได้) ไม่ว่าจะเป็นสิ่งที่ดีทั้งสองได้รับการสนับสนุนใน html5
aaaaaa

48

HTML5 อัปเดตเรื่องนี้: ตอนนี้สามารถรวมองค์ประกอบระดับบล็อกด้วย A ได้ตามที่ระบุไว้ในคำถามอื่น: https://stackoverflow.com/a/9782054/674965และที่นี่: http://davidwalsh.name/html5- องค์ประกอบลิงค์


8
คำตอบนี้มีความเกี่ยวข้องมากกว่าคำตอบที่ยอมรับ
Josh Davenport

@JoshDavenport คำตอบที่ยอมรับได้รับการอัปเดตเพื่อสะท้อนให้เห็นว่า
dan-klasson

2

เท่าที่ฉันเข้าใจ HTML5 ช่วยให้คุณสามารถรวมองค์ประกอบระดับบล็อกในแท็กลิงก์ได้ อย่างไรก็ตามข้อบกพร่องอาจปรากฏในเบราว์เซอร์รุ่นเก่า ฉันพบสิ่งนี้กับ Firefox 3.6.18 และได้แทรก moz-rs-head = "" ลงในโค้ดของฉัน ดังนั้นสไตล์ของฉันจึงพัง หากคุณสนใจเกี่ยวกับการแก้ไขปัญหาคุณสามารถรวมแท็กลิงก์ไว้ใน div ต่อไปนี้ให้คำอธิบายที่ดีขึ้นว่าเหตุใดโค้ดเพิ่มเติมจึงใช้งานได้http://oli.jp/2009/html5-block-level-links/


2

a > h1 จะทำให้เกิดปัญหาในการเลือกข้อความ

ปัญหาการเลือกข้อความ

เนื่องจากทั้งสองอย่างถูกต้องสมบูรณ์ใน HTML5 จึงควรใช้ h1 > a

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.