强制制表符在隐藏元素上停止?可能?

Par*_*roX 6 html javascript css

该网站在这里

我选择使用单选按钮的标签作为它们的自定义按钮。这意味着无线电输入本身不显示:因此,浏览器不会在制表符标签处停下来,但我希望它们。

我试图强迫他们使用tabindex,但是没有雪茄。

我想出了只在标签前面放一个无意义的复选框,并将其设置为width:1px;的方法。和高度1像素;这似乎仅适用于Chrome和Safari。

那么,您是否还有其他想法可以迫使制表符在这些位置停止而不显示任何元素?

编辑:

以防万一有人通过这种方式,这就是我能够使用JQuery将小的复选框插入chrome和safari的方式:

if ($.browser.safari) {
    $("label[for='Unlimited']").parent().after('<input style="height:1px; width:1px;" type="checkbox">');
    $("label[for='cash']").parent().after('<input style="height:1px; width:1px;" type="checkbox">');
    $("label[for='Length12']").parent().after('<input style="height:1px; width:1px;" type="checkbox">');
}
Run Code Online (Sandbox Code Playgroud)

注意:$ .browser.webkit并没有成为现实...所以我不得不使用野生动物园

Fel*_*nen 10

在我的情况下启用选项卡选择/箭头导航的可行解决方案是将不透明度设置为零而不是“显示:无”

.styled-selection input {
    opacity: 0;         // hide it visually
    z-index: -1;        // avoid unintended clicks
    position: absolute; // don't affect other elements positioning
}
Run Code Online (Sandbox Code Playgroud)


str*_*ger 3

保持无线电输入隐藏,但设置在到达无线电输入的元素tabindex="0"上。<label>

(选项卡索引为 0 时,该元素将与具有未指定选项卡索引但仍可选项卡的其他元素一起保持在选项卡流中。)

  • 这不起作用,甚至将 tabindex="0" 放在隐藏无线电输入的标签上似乎也会被跳过。至少是镀铬的。 (5认同)
  • 尊敬的@strager,我不确定这是否有效。我的理解是 &lt;label&gt; 元素会将焦点传递给 TAB//focus 事件上的关联控制元素。我认为这可能需要一些 JavaScript 黑客技术,但它会起作用。 (2认同)