HTML元素属于content cagetories。对于我手头的任务,我需要确保我没有嵌套交互式内容节点。
目前,我可以遍历节点的父节点,以确保它们都不属于<a>, <button>, <details>, <embed>, <iframe>, <keygen>, <label>, <select>, and <textarea>
类型。所有这些元素都是“互动内容”的一部分。类别。
其他类型也可以是互动的。
<audio>
,如果控件属性存在<img>
,如果存在usemap属性<input>
,如果type属性不处于隐藏状态<menu>
,如果type属性处于工具栏状态<object>
,如果存在usemap属性<video>
,如果控件属性存在此外,任何tabindex
属性is considered interactive的元素。
这些规则都是HTML规范的一部分,并且有详细记录,但需要记录下来。有没有更简单的方法来检查元素属于哪些内容类别?
答案 0 :(得分:4)
不,DOM中没有任何方法可以对元素进行分类。分类仅在HTML5规范散文中进行。 DOM中反映的旧分类很少,例如按类型对表单字段进行分类,具有type
属性,您可以根据间接查找某些分类渲染规则,因为不同的元素在样式设置中具有不同的display
属性值。但是所有这些现代分类都需要使用元素名称列表在代码中实现。您可以通过仔细查看HTML5中的DOM定义并发现它们不包含分类来看到这一点。