我可以使用HTML5在<a>内嵌入<button>元素吗?

我正在做以下事情:

 <a href="www.stackoverflow.com">
   <button disabled="disabled" >ABC</button>
 </a>  

这很好,但我得到一个HTML5验证错误,说“元素'按钮'不能嵌套在元素'按钮'中。

任何人都可以给我建议我应该做什么?


,根据W3C的HTML5规范文档,它不是有效的HTML5:

内容模型:透明,但不能有交互式内容后裔。

只要内部没有交互式内容(例如按钮或其他链接),a元素就可以环绕整个段落,列表,表格等等甚至整个部分。

换句话说,除了下面的内容外,你可以嵌套<a>任何元素:

  • <a>

  • <audio> (如果控件属性存在)

  • <button>

  • <details>

  • <embed>

  • <iframe>

  • <img> (如果usemap属性存在)

  • <input> (如果type属性不处于隐藏状态)

  • <keygen>

  • <label>

  • <menu> (如果type属性处于工具栏状态)

  • <object> (如果usemap属性存在)

  • <select>

  • <textarea>

  • <video> (如果控件属性存在)


  • 如果您试图将按钮链接到某处,请将该按钮封装在<form>标签中,如下所示:

    <form style="display: inline" action="http://example.com/" method="get">
      <button>Visit Website</button>
    </form>
    

    但是,如果您的<button>标签使用CSS样式,并且看起来不像系统的小部件...请帮助自己,为<a>标签创建一个新类并以相同的方式设计它。


    如果你使用的是Bootstrap 3 ,这个效果很好

    <a href="#" class="btn btn-primary btn-lg active" role="button">Primary link</a>
    <a href="#" class="btn btn-default btn-lg active" role="button">Link</a>
    

    没有。

    以下解决方案依赖于JavaScript。

    <button type="button" onclick="location.href='http://www.stackoverflow.com'">ABC</button>
    

    如果将按钮放置在现有的<form>并且method="post" ,则确保该按钮具有属性type="button"否则该按钮将提交POST操作。 通过这种方式,您可以拥有一个包含GET和POST操作按钮混合的<form>

    链接地址: http://www.djcxy.com/p/36507.html

    上一篇: Can I nest a <button> element inside an <a> using HTML5?

    下一篇: ASP.NET MVC Navigation and User Interface design