在HTML5中,我们可以定义我们想要的任何元素,例如:
<mycustomlabel attr1="...">
<!-- contents whatsoever -->
</mycustomlabel>
现在我希望<mycustomlabel>
的外观和感觉就像普通<label>
一样。对于外观部分,我可以依赖CSS,我可以充实大量的CSS规则,使其看起来像<label>
。
但是一个<label>
也有一个非常具体的行为,我希望在<mycustomlabel>
中看到克隆:当它获得焦点时,它的第一个可聚焦的孩子会获得焦点。而且(更重要的是)如果点击它,那个孩子就会获得点击。
我可以在javascript中编写所有这些行为(除了不知道完全 <label>
有什么特殊行为,但知道我的新自定义元素应该行为完全作为<label>
会)。但是我不喜欢复制代码,所有的实现细节都隐藏在浏览器的某个地方。
那么如何让我的自定义元素从<label>
延伸?