在html5定义下使用标签的“for”值作为普通div元素的id是有效的html(例如我已经制作了一个自定义下拉列表实现,它被包含在div中)
请尽可能告诉我,
托马斯
答案 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
}
});