将<button>放在<h2>?</h2> </button>中是否在语义上有效

时间:2014-05-12 21:19:42

标签: html5 semantic-markup html-heading htmlbutton

我有一个标题元素,需要在点击时触发一些JavaScript。我知道我应该只在页面实际更改时使用<a>标记,并且<button>是JS函数的首选,但由于某种原因,它只是感觉不对。

<h2><button onclick="myFunction();">My Title</button></h2>

我无法理解为什么语义不正确。只是我吗?

2 个答案:

答案 0 :(得分:12)

根据W3C Validator,这样做没有问题。

您可以尝试验证此代码:

<!DOCTYPE html>
<html>
<head>
   <title>I AM YOUR DOCUMENT TITLE REPLACE ME</title>
</head>
<body>

<h2><button onclick="myFunction();">My Title</button></h2>

</body>
</html>

但是,我建议避免使用内联样式。

答案 1 :(得分:7)

按钮的实际文字是什么?它是否适合作为自己的标题?

  

按钮的文字是点击

时显示的内容的标题

然后我认为你状态良好。不过,我会提出一个可能让你感觉更好的小建议:

<h2><a href="#content">My Heading</a></h2>
<element id="content"> [your content] </element>

然后在外部javascript文件中附加onclick处理程序。如果您稍后将其删除,则该链接仍然有效。