【问题标题】:Header inside Link or Link inside Header in HTML markup? [duplicate]HTML标记中链接内的标题或标题内的链接? [复制]
【发布时间】:2012-06-24 03:24:59
【问题描述】:

可能重复:
Which is more correct: <h1><a>..</a></h1> OR <a><h1>..</h1></a>
Semantically, which is more correct: a in h2, or h2 in a?

这是一个关于 HTML 的简单问题。将链接放在标题、段落或其他 HTML 元素中的正确/最可取的方式是什么?

这边:

&lt;h2&gt;&lt;a href=""&gt;Some Title&lt;/a&gt;&lt;/h2&gt;

或者这样:

&lt;a href=""&gt;&lt;h2&gt;Some Title&lt;/h2&gt;&lt;/a&gt;

【问题讨论】:

    标签: html


    【解决方案1】:

    我更喜欢第二个:

    <a href=""><h2>Some Title</h2></a>
    

    因为你有更多的控制权,例如,如果你想做这样的事情:

    <a href=""><h2>Some Title</h2> <h1>biggest</h1></a>
    

    【讨论】:

      【解决方案2】:

      更好的是

      <h2><a href="">Some Title</a></h2>
      

      因为h 是带有显示块的元素,在a 元素中包含block 并不是一个好习惯。

      【讨论】:

        【解决方案3】:

        注意:您不能将标题放在 HTML4 中的链接内。

        在 HTML5 中,这取决于您想要的效果和语义。将整个标题放在链接内将导致可点击区域跨越整个宽度,而将链接放在标题内只会导致文本可点击。我之前使用过这两个版本,但这完全取决于我将标题放在哪里。

        【讨论】:

          【解决方案4】:

          它们都工作得很好。

          如果您愿意,可以通过http://validator.w3.org/ 自行查看。

          【讨论】:

            【解决方案5】:
            <h1><a href="#">text here</a></h1>
            

            是正确的,因为 HTML 不允许内联元素 () (src) 中包含块元素 ()。您的第二个示例将无法通过验证。

            通常,块级元素可能包含内联元素和其他块级元素。通常,内联元素可能只包含数据和其他内联元素。这种结构区别的内在想法是块元素创建比内联元素“更大”的结构。

            我刚刚从另一个问题中复制了这个......

            【讨论】:

              【解决方案6】:

              从技术上讲,&lt;a&gt; 是内联元素,&lt;h2&gt; 是块级元素,所以:

              <h2><a href="">Some Title</a></h2>
              

              是正确的嵌套。

              也就是说,浏览器通常会忽略这样的错误嵌套,并允许您按照自己的方式进行操作。

              我不喜欢在浏览器选择以标准合规模式或 Quirks 模式运行我的页面时,我会选择正确的嵌套。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-11-08
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多