代码之家  ›  专栏  ›  技术社区  ›  Chris Noe Paweł Dyda

如何为不可见的HTML元素定义accesskey

  •  0
  • Chris Noe Paweł Dyda  · 技术社区  · 16 年前

    我有一个 <button> 有一个accesskey。只要按钮可见,accesskey就可以正常工作,但是当我设置 display: none visibility: hidden ,accesskey不再工作。

    也尝试过但没有成功:

    • 使用不同的元素类型:a,input(各种类型,甚至无类型)。
    • 将accesskey分配给包装不可见控件的标签。

    注意,我不确定这是否是标准行为,但是在火狐3之前,无论可见性如何,accesskey都能正常工作。

    4 回复  |  直到 13 年前
        1
  •  5
  •   Prestaul    16 年前

    您看到的行为是正确的,您不能“访问”未显示的元素。萨尔的建议几乎肯定会奏效,但我可以问一下你这样做的目的是什么吗?也许有更好的方法来完成你想要达到的目标。你考虑过使用按键处理程序吗?

    我想如果你不想要一个键控处理程序,你可能还需要其他的建议。尝试位置:绝对;左-9999px;将内容从页面中拉出。或者使用绝对位置,将不透明度更改为零,Z索引更改为-1。通过使用position absolute元素不会影响页面上其他内容的定位,设置不透明度将使其不可见。即使不透明度设置为零,您仍然可以单击元素,尽管您看不到它,但它可能会阻止您单击页面的其他元素,因此使用负z索引将其拉到其他内容后面。

        2
  •  2
  •   GSerg    13 年前

    可以应用负的边距将元素推出可见页。我认为许多浏览器和文本阅读器忽略了 display:none 可能还有 visibility:hidden .

        3
  •  1
  •   GSerg    13 年前

    最简单的解决方案: height: 0px; margin: 0px; padding: 0px; 在你的CSS中。

        4
  •  0
  •   GSerg    13 年前

    将按钮放在页面之外,而不是显示可见性或属性。

    <button accesskey="a" style="position: absolute; top: -9999px">button</button>
    

    警告:使用Left而不是Top会导致IE7中出现奇怪的显示错误