属性的标签标签是否可以与普通div相关联?

时间:2012-07-29 01:34:36

标签: html html5

在html5定义下使用标签的“for”值作为普通div元素的id是有效的html(例如我已经制作了一个自定义下拉列表实现,它被包含在div中)

请尽可能告诉我,

托马斯

2 个答案:

答案 0 :(得分:11)

不符合规范:

  

某些元素(并非所有元素与形式相关)都归类为   可折叠的元素。这些是可以与a关联的元素   标签元素。

     

“button”“input”(如果type属性不处于隐藏状态)“keygen”   “米”“输出”“进度”“选择”“textarea”

http://www.w3.org/TR/html5/forms.html#category-label

另见:

  

可以指定for属性以指示表单控件   哪个标题是关联的。如果指定了属性,   属性的值必须是。中可标记元素的ID   与标签元素相同的文档。如果指定了属性并且   Document中有一个元素,其ID等于   for属性,第一个这样的元素是一个可标记的元素,   然后该元素是标签元素的标记控件。

http://www.w3.org/TR/html5/the-label-element.html#attr-label-for

我认为这个问题提出了一个有效的用例。我不确定这种情况下推荐的模式是什么,尽管ARIA属性可能有助于使标记更易于访问:

https://developer.mozilla.org/en/Accessibility/ARIA/forms/Basic_form_hints https://developer.mozilla.org/Special:Tags?tag=ARIA

答案 1 :(得分:2)

正如蒂姆所指出的那样,本身不可能这样做,但是只需要一点点javascript你就可以模拟它

jQuery(document).delegate('[for]','click',function(e){
    var targetEl = jQuery('#'+jQuery(this).attr('for'));
    if(targetEl.is('div.your-custom-dropdown-class')) { //if targetEl is one of your dropdowns
        e.preventDefault();
        targetEl.trigger('click'); //open the drop down
    }
});